Python魔法函数

class Life(object):
    # __new__是构造函数,负责对象的创建
    # 返回一个实例
    def __new__(cls):
        print("Life.__new__")
        self = super().__new__(cls)
        print(f"self in __new__:{self}")
        return self

    # __init__是一个初始化函数,负责对__new__实例化的对象进行初始化; 不允许有返回值
    # __init__函数除了self定义的参数,其它参数都必须与___new__函数中除了cls参数外的参数保持一致
    def __init__(self):
        print("Life.__init__")
        print(f"self in __init__:{self}")

    # __call__函数的作用就是声明这个类的对象是可调用的(callable); 未在类中声明__call__函数,该类的对象是不可调用的
    # object(*args, **kwargs) 等价于 object.__call__(*args, **kwargs)

    def __call__(self, *args, **kwargs):
        print("__call__ function: ", args)


# __new__函数创建一个实例之后返回这个实例对象,并将其传递给__init__函数的self参数
# _init__函数的调用在___new__函数之后
life = Life()
print(life)

print(callable(life))
life("arg1", "arg2")

你可能感兴趣的:(编程语言,python,开发语言)