上课
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 message的只是应用于foo. 什么是声明对象属性只能通过其实例可变的正确方法?
使用 Python 2.7.1