更改课程时出错' __name__并从实例访问它

时间:2018-02-22 22:58:30

标签: python python-3.x

我是Python和Python标签的新手,所以我真的不知道发生了什么。请原谅我,如果这是重复的,虽然我没有找到。

我在我的翻译上运行了这些命令:

>>> class X():
...     pass
... 
>>> X
<class '__main__.X'>
>>> X.__name__ = "Test"
>>> X
<class '__main__.X'>
>>> y = X()
>>> y
<__main__.X object at 0x7f6971e7a860>   
>>> y.__class__().__name__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Test' object has no attribute '__name__'

任何人都能解释一下为什么会出现这个错误吗?我等着得到&#34;测试&#34;背部。提前谢谢。

1 个答案:

答案 0 :(得分:5)

您正在通过再次调用类构造函数来创建该类的另一个实例:

y.__class__().__name__ 
#          ^^ 

您只需要引用类对象,即删除括号:

y.__class__.__name__