(34人评价)
Python全栈+数据分析系统辅导课

名师答疑,全网最新内容,满足就业+辅修双目标

价格 ¥ 4999.00

魔术方法:
在Python中,所有以“_ _”双下划线包裹起来的方法,都被统称“魔术方法”。

1. __new__
对象初始化:
    先执行__new__(cls)——分配内存空间,并返回构建好的对象的地址,若不返回地址,则后续的__init__不会被执行。

    __init__(self)——为构建好的对象赋予初始值,object.__new__(cls)的地址即__init__(self)函数中self的地址。

2.__del__
从内存中清除对象的时候,对象会默认执行的方法
(1)调用类且所有程序执行完毕,释放内存时。
(2)执行del指令删除指向类的所有对象时。只有当指向对象的所有对象都被删除的时候,对象的空间才会被释放。

3. __call__将对象当作函数执行的时候会被默认调用
class Fight:
    
    def __call__(self, *args, **kwargs):
        print("__call__方法被调用了")
        
f = Fight()
f(实际参数)

4.__str__
(1)返回值必须为字符串。打印对象的时候,默认会被调用__str__,打印内容是返回的字符串。
(2)使用str(对象)后,默认会被调用__str__。

5.__repr__
返回值必须为字符串,打印可变容器中的对象时会默认调用__repr__,打印内容是返回的字符串。
 

[展开全文]