Python 类Boo():pass var1=Boo var1.x=4这怎么可能

Python 类Boo():pass var1=Boo var1.x=4这怎么可能,python,Python,但是Boo中没有x,它从未被声明过!这怎么可能 --编辑-- 哇,这真是令人兴奋,你可以做到 类在默认情况下有一个\uuuu dict\uuuu,正是出于这个目的(运行时赋值和修改属性)。常规属性赋值只是将相应的名称和值放入其中 这与在类定义时设置没有什么不同,真的: class Boo(): pass var1 = Boo var1.x = 4 >>类Boo: ... x=1 ... >>>Boo.y=2 >>>嘘__ mappingproxy({''dict})

但是Boo中没有x,它从未被声明过!这怎么可能

--编辑--


哇,这真是令人兴奋,你可以做到

类在默认情况下有一个
\uuuu dict\uuuu
,正是出于这个目的(运行时赋值和修改属性)。常规属性赋值只是将相应的名称和值放入其中

这与在类定义时设置没有什么不同,真的:

class Boo():
    pass

var1 = Boo
var1.x = 4
>>类Boo:
...     x=1
...     
>>>Boo.y=2
>>>嘘__

mappingproxy({''dict}):实际上在这个上下文中的意思是。

因为您不必用python声明成员。您只是创建了一个新的(类)用于
Boo
的变量,因为您刚刚声明了它!默认情况下,Python对象有一个用于存储属性的可变字典。您可以为它指定任何您想要的内容。@Barmar:如果您定义了类变量,则不会。
>>> class Boo:
...     x = 1
...     
>>> Boo.y = 2
>>> Boo.__dict__
mappingproxy({'__dict__': <attribute '__dict__' of 'Boo' objects>,
              '__doc__': None,
              '__module__': '__main__',
              '__weakref__': <attribute '__weakref__' of 'Boo' objects>,
              'x': 1,
              'y': 2})