魔术方法、单例模式、上下文管理器协议
魔术方法 双下划线开头和结尾的方法(又叫特殊方法、魔法方法;是Python事先去实现底层的一些方法,自己去定义方法的时候最好不要使用双下划线开头和结尾),不需要手动去调用,都是在特定的情况下触发的。
# 类实例化对象的过程:
# 1、调用__new__创建对象
# 2、调用__init__初始化对象(init中的self就是new的返回值)
# 一般情况下不要去定义__new__方法,如果定义了,一定要在new中返回对象
# 也可以返回其他如一个空列表,这样创建的对象就自动有append等列表特有的方法,但是不会这么做
# 如果__new__方法中没有返回对象,则不会执行到__init__去初始化对象,没有返回值则打印为None
class Demo(object):
def __init__(self):
print('init')
def __new__(cls):
print('new')
obj = super().__new__(cls) # 调用父类
共有 0 条评论