gpt4 book ai didi

Python类和实例属性混淆

转载 作者:太空宇宙 更新时间:2023-11-04 10:54:44 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
“Least Astonishment” in Python: The Mutable Default Argument

为了上课

class ValidationResult():
def __init__(self, passed=True, messages=[], stop=False):
self.passed = passed
self.messages = messages
self.stop = stop

运行

foo = ValidationResult()
bar = ValidationResult()
foo.messages.append("Foos message")
print foo.messages
print bar.messages

产生

['Foos message']
['Foos message']

还有这个

foo = ValidationResult()
bar = ValidationResult(messages=["Bars message"])
foo.messages.append("Foos message")
print foo.messages
print bar.messages

产生

['Foos message']
['Bars message']

我想我在这里错过了理解实例属性的机会。在第一个示例中,我希望 Foos 消息 仅应用于 foo。声明仅由其实例可变的对象属性的正确方法是什么?

使用 Python 2.7.1

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com