类的特殊方法,其实就是遇到类代码特定的语法 然后去执行指定的特殊方法。只是一个对应的映射关系比如:
这么多特殊方法,其实是为了不同的特定语法设计,大家都遵守这个约定。
python内部根据特殊的语法帮我们映射到特殊的方法,里面的逻辑由我们自己实现
当然你可以打破这个规定,比如__int__是转换成数字类型,你可以写成相加,但是强烈不推荐这样使用,不然你的代码只有你自己看得懂。别人看起来就费劲。
二、各种特殊方法
2.1 类与对象调用自动执行
__init__
类() 自动执行该方法,又叫构造函数,利用该特性,我们一般用来做封装
__call__
和__init__相对应。__call__是对象()自动运行该方法。
__init__: 类()
__call__: 对象()
class Foo: def __call__(self): print('1') obj = Foo() obj() obj1 =Foo()() # 也可以写成这种形式