魔法函数可以为对象增强功能。如__getitem__()可以将对象变成可迭代类型
python数据模型对python的影响
魔法函数是可以直接影响python的语法的。
python常见的魔法函数:
字符串类型:str():调用内置函数的时候,默认会先查看该内置函数有没有关联的魔法函数, repr():开发模式下使用进行自定义输出。
魔法函数跟继承的对象本身没有任何关系。所有的对象都可以写魔法函数。继承了也没有用。python解释器进行识别。
cpython是python的解释器。用c语言写的。list,set,dict这些原生的数据类型也都是用c语言实现的。在cpython这个解释器中会对list,set,dict的len进行一个备份。
在调用len的时候,直接获取到那个值,而不是去遍历查询长度。python解释器会对很多语句进行优化。