class Temp:
x = 10
def get_settings():
return Temp()
if __name__ == '__main__':
y1 = get_settings()
y2 = get_settings()
z1 = id(get_settings())
z2 = id(get_settings())
if id(y1) == id(y2):
print('Same object y1 and y2')
else:
print('DIFFERENT object y1 and y2 (AS EXPECTED)')
if z1 == z2:
print('SAME object z1 and z2 (WHY???)')
输出:
DIFFERENT object y1 and y2 (AS EXPECTED)
SAME object z1 and z2 (WHY???)
我原以为Z1和Z2是不同的,但输出表明它们是同一个对象的id. 这是不是Python中的一个错误?还是我错过了什么.