Python类变量名称与__name__

交流电

我试图了解分配给Python类对象的变量与该类对象的__name__属性之间的关系例如:

In [1]: class Foo(object):
   ...:     pass
   ...: 

In [2]: Foo.__name__ = 'Bar'

In [3]: Foo.__name__
Out[3]: 'Bar'

In [4]: Foo
Out[4]: __main__.Bar

In [5]: Bar
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-5-962d3beb4fd6> in <module>()
----> 1 Bar

NameError: name 'Bar' is not defined

因此,似乎我已经更改了__name__属性,但无法用该名称引用它。我知道这是一个有点普通,但可能有人解释之间的关系FooFoo.__name__

伦纳特·雷杰布罗

这很简单。根本没有关系。

创建类时,将使用您使用的名称创建一个局部变量,指向该类,以便您可以使用它。

该类还获得了__name__包含该变量名称的属性,因为在某些情况下(例如腌制)很方便。

您可以将局部变量设置为其他变量,也可以更改__name__变量,但是酸洗之类的东西将不起作用,因此请勿这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档