class Foo:
bar = 1
......etc.
Run Code Online (Sandbox Code Playgroud)
我知道在创建实例时,之前创建了bar __init__,我想知道在为Foo创建实例时是否首先创建bar属性.此外,在创建任何实例之前,条形图是否已存在于内存中?
请记住,在Python class是一个可执行语句(如太是def和import).因此,您的问题的答案bar是在class语句执行时创建的.
具体来说,当一个class语句执行时,该类的主体在一个通常只是a的命名空间中执行dict.当主体完成执行时,会创建一个类对象,并将结果副本dict作为__dict__类的属性.此时的dict包含bar=1例如绑定在类体内的所有名称,但也包含在类体中定义的所有函数.
实例创建时,不会获得副本bar,它们只是引用该类.当您在实例上查找名称时,Python会在实例__dict__和类中查找__dict__.
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |