0

可能是一个愚蠢的问题,但我更习惯于 Java 之类的,因此不明白为什么我可以这样做:

class A:
    def __init__( self ):
        pass

a = A()
a.description = "whyyy"

print a.description

并让它打印出来whyyy而不是给我一个错误。

4

2 回答 2

2

因为 Python 对象是动态的——它们不需要遵循严格的模式。

创建一个类的实例会为您提供一个已经定义了某些内容的对象,但您可以动态地将其他内容添加到该实例中;您不限于原始类定义。

于 2012-07-01T06:53:45.990 回答
0

变量通过分配一个值而出现,并且当它们超出范围时它们会自动销毁。

对于对象,您可以在运行时动态添加新字段。请注意,这不会更改类描述。仅当前实例。

class A:
    def __init__( self ):
        pass

a = A()
a.description = "whyyy"

print a.description

b = A()

print b.description # Should return an error
于 2012-07-01T06:58:36.973 回答