__name__是类级变量吗

  • 本文关键字:变量 name python oop
  • 更新时间 :
  • 英文 :


通常可以通过该类的实例访问类级别的属性但是,对于像__name____bases__这样的属性,我无法通过实例访问它们。如何/在哪里定义这些属性?请参阅以下代码:

class MyParentClass:
k = 12
class MyClass(MyParentClass):
pass
obj = MyClass()
print(MyClass.k)    # ok
print(MyClass.__name__)  # ok
print(obj.k) # ok
print(obj.__name__) # error

它们不能从实例访问,因为它们不是类属性,而是类对象的属性。

也许你想得到类名:

print(obj.__class__.__name__) 

输出:

MyClass

我认为更可能的错误是拼写错误:

print(obj.__name) <---- 

它应该有灌篮之后

编辑,我看到deceze评论了同样的事情

最新更新