可能是一个愚蠢的问题,但我更习惯于 Java 之类的,因此不明白为什么我可以这样做:
class A:
def __init__( self ):
pass
a = A()
a.description = "whyyy"
print a.description
并让它打印出来whyyy
而不是给我一个错误。
因为 Python 对象是动态的——它们不需要遵循严格的模式。
创建一个类的实例会为您提供一个已经定义了某些内容的对象,但您可以动态地将其他内容添加到该实例中;您不限于原始类定义。
变量通过分配一个值而出现,并且当它们超出范围时它们会自动销毁。
对于对象,您可以在运行时动态添加新字段。请注意,这不会更改类描述。仅当前实例。
class A:
def __init__( self ):
pass
a = A()
a.description = "whyyy"
print a.description
b = A()
print b.description # Should return an error