python中类级变量动态获取类名

2024-05-29 03:04:34 发布

您现在位置:Python中文网/ 问答频道 /正文

问题很简单,我试着使缩进适合可读性。我刚开始使用Python,下面是我现在所拥有的:

class BaseKlass():
  ....

class DerivedKlass1(BaseKlass):
  display_name = "DerivedKlass1"

class DerivedKlass2(BaseKlass):
  display_name = "DerivedKlass2"

所以基本上所有派生类都有

display_name variable with class name hardcoded.

我想要的是在BaseKlass中设置display_name,并从子类中删除display_name声明,如下所示:

^{pr2}$

因此DerivedKlass1.display_name应返回“DerivedKlass1”,DerivedKlass2.display_name应返回“DerivedKlass2”。在

我知道我遗漏了一些非常明显的东西,我希望有很多RTFM注释,但是不管怎样,我只想学习如何动态地将python类名设置为类级别的属性。所以,如果你愿意的话,你可以随意投反对票,但是如果你也留下答案,我会很感激的。在

谢谢


Tags: name声明withdisplay子类variableclass可读性
1条回答
网友
1楼 · 发布于 2024-05-29 03:04:34

可以使用访问对象的类名

obj.__class__.__name__

一旦创建了实例,就需要这样做。最直接的方法是

^{pr2}$

你也可以使用一个元类来自动设置它,但是我不认为它值得麻烦,而且我现在不记得它们是如何工作的。在

相关问题 更多 >

    热门问题