为什么我被允许访问不存在的变量?

时间:2012-07-01 06:51:44

标签: python class

可能是一个愚蠢的问题,但我更习惯Java和喜欢的东西,因此我不知道为什么我可以这样做:

class A:
    def __init__( self ):
        pass

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

print a.description

并打印whyyy而不是给我一个错误。

2 个答案:

答案 0 :(得分:2)

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

创建类的实例会为您提供已定义某些内容的对象,但您可以动态地向该实例添加其他内容;你并不局限于原来的班级定义。

答案 1 :(得分:0)

  

变量通过赋值和它们而存在   当它们超出范围时会自动销毁。

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

class A:
    def __init__( self ):
        pass

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

print a.description

b = A()

print b.description # Should return an error