Python 名称是一个类级变量吗?

Python 名称是一个类级变量吗?,python,oop,Python,Oop,通常,可以通过该类的实例访问类级属性 但是,对于像\uuuuu name\uuuuuu这样的属性,\uuuuuu base\uuuuuu我无法通过实例访问它们。 如何/在何处定义这些属性? 请参阅下面的代码: class MyParentClass: k = 12 class MyClass(MyParentClass): pass obj = MyClass() print(MyClass.k) # ok print(MyClass.__name__) # ok

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

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.\u name)无法从实例访问它们,因为它们不是类属性,而是类对象的属性。

也许您想获取类的名称:

打印(对象类名称)
输出:

MyClass

也许你可以把工作代码和失败的代码放在一起。这与发布时的格式有关。我更正了最初的帖子。它是
\uuuuu name\uuuuuuu
,而不是
\uuuuu name
,因此如果我正确理解
MyClass
对象,它包含一个类模板(由子类继承,并可用于从该类实例化的对象)和一些附加属性(不是类模板的一部分),哪些来自
类型
类,并且仅在类本身上可用?