面向对象之魔术方法大全:
https://www.cnblogs.com/nmb-musen/p/10861536.html
"""
面向对象之魔术方法大全:https://www.cnblogs.com/nmb-musen/p/10861536.html
(1)__init__有什么作用?
创建对象时候自动调用,对创建的对象进行初始化设置
(2)什么是魔术方法?
类似__init__双下划线开头、结尾的方法
(3)创建一个对象的时候,调用的第一个方法是?
__new__用来创建对象,然后交给__init__做初始化设置。
(4)object中的__new__方法,一般不会被重写,object的静态方法,创建一个对象
@staticmethod
def __new__(cls, *more): # known special case of object.__new__
Create and return a new object. See help(type) for accurate signature.
pass
(5)单例模式是啥玩意?
暂不投入,,,
"""
class Foo:
def __init__(self):
print('__init__触发了')
def __call__(self, *args, **kwargs):
print('__call__触发了')
# 若定义了__str__方法,打印对象时会return字符串数据
def __str__(self):
return "__str__触发了"
# __init__触发了
obj = Foo()
# __call__触发了
obj()
# __str__触发了
print(obj)