__init__ 与 __new__
__new__负责创建实例,__init__负责初始化实例:
class Person:
# 创建实例时调用
def __new__(cls, name):
print(f"Creating new {cls.__name__} instance")
return super().__new__(cls)
# 初始化实例时调用
def __init__(self, name):
print(f"Initializing person: {name}")
self.name = name
p = Person("Alice")
# 输出:
# Creating new Person instance
# Initializing person: Alice
发表评论