我是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;背部。提前谢谢。
答案 0 :(得分:5)
您正在通过再次调用类构造函数来创建该类的另一个实例:
y.__class__().__name__
# ^^
您只需要引用类对象,即删除括号:
y.__class__.__name__