常见的几个魔术方法

常见的几个魔术方法

php中把以两个下划线——开头的函数(方法)称为魔术方法(Magic methods)这些函数不需要显示的调用,而是由某种特定的条件触发。

__construct() 类的构造函数,当一个类被实例化的时候会自动调用
__get()读取不可访问或不存在属性时被调用
__set()当给不可访问或不存在属性赋值时被调用
__isset()当不可访问属性调用isset()或empty()时调用
__unset()当对不可访问属性调用unset()时被调用
__sleep()当使用serialize时被调用(不需要保存大对象的所有数据时很有用)
__toString()当一个类被转成字符串时被调用
__invoke()当以函数方式调用对象时被调用
__call()调用非public或不存在的方法时被调用
__debuInfo()打印所需调试信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为您介绍一些关于Python的高频面试题。以下是几个常见的问题及其答案: 1. Python中的列表和元组有什么区别? 答:列表和元组都是Python中的数据结构,但有几个重要的区别: - 列表是可变的,可以通过索引进行修改,而元组是不可变的,不能修改。 - 列表使用方括号 [] 表示,元组使用圆括号 () 表示。 - 列表通常用于存储多个相关的项目,而元组通常用于表示一个不可变的数据集合。 2. Python中的装饰器是什么?如何使用装饰器? 答:装饰器是Python中一种用于修改函数行为的特殊语法。它允许在不修改原始函数代码的情况下,通过添加额外的功能来扩展函数的功能。装饰器使用 @ 符号来应用于函数。例如: ``` @decorator def function(): pass ``` 这样,装饰器函数 decorator 将会被应用于 function 函数。 3. 解释一下Python中的GIL(全局解释器锁)是什么? 答:GIL是Python解释器中的一个机制,它确保同一时间只有一个线程执行Python字节码。这意味着在多线程的情况下,Python无法利用多核处理器的优势。GIL的存在是为了保证线程安全,避免出现竞态条件。 4. Python中的生成器和迭代器有什么区别? 答:生成器和迭代器都是用于处理可迭代对象的工具,但有几个区别: - 生成器是一种特殊的迭代器,可以通过函数和 yield 语句来创建。迭代器可以使用类和特殊的魔术方法来创建。 - 生成器可以按需生成值,而不是一次性生成所有值。迭代器需要实现 __iter__() 和 __next__() 方法来逐个返回值。 - 生成器可以更简洁地实现迭代器功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值