Python 为什么允许我访问一个不存在的变量?

Python 为什么允许我访问一个不存在的变量?,python,class,Python,Class,可能是个愚蠢的问题,但我更习惯于Java之类的东西,因此不明白为什么我可以这样做: class A: def __init__( self ): pass a = A() a.description = "whyyy" print a.description 并将其打印出来,而不是给我一个错误。因为Python对象是动态的,它们不需要遵循严格的模式 创建一个类的实例会为您提供一个已经定义了某些内容的对象,但您可以动态地向该实例添加其他内容;您不受原始类定义的限制 变

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

class A:
    def __init__( self ):
        pass

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

print a.description

并将其打印出来,而不是给我一个错误。

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

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

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

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

class A:
    def __init__( self ):
        pass

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

print a.description

b = A()

print b.description # Should return an error