前言
- 一般来说,我们创建一个实例对象的时候是使用 类名() 的方式,但实际上 _ new _()也是可以的,当然它们有着细微的区别。
正文
- code:
class Test:
def __init__(self):
self.test="test"
if __name__ == '__main__':
t1 = Test()
print(vars(t1))
t2 = Test.__new__(Test)
print(vars(t2))
# {'test': 'test'}
# {}
补充
- 这是我在阅读 python cookbook 时的一个小发现,可能实用性不大,但也是值得记录一下(万一哪天有这种特殊的需求?)
- 产生这种情况的原因是:t2直接被分配内存地址,没有经过 _ init _()的实例初始化。