gpt4 book ai didi

python - 在python中动态获取类级别变量的类名

转载 作者:太空狗 更新时间:2023-10-29 21:01:19 25 4
gpt4 key购买 nike

这个问题很简单,我试图使缩进适合可读性。我刚刚开始使用 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 声明,如下所示:

class BaseKlass():
display_name = <some way to set the display name to callee class name>

class DerivedKlass1(BaseKlass):
....

class DerivedKlass2(BaseKlass):
....

这样 DerivedKlass1.display_name 应该返回“DerivedKlass1”,DerivedKlass2.display_name 应该返回“DerivedKlass2”。

我知道我遗漏了一些非常明显的东西,我期待着很多 RTFM 评论,但不管怎样,我只想学习如何将 python 类名动态设置为类级属性。因此,如果您愿意,请随时对帖子投反对票,但如果您也留下答案,我将不胜感激。

谢谢,

最佳答案

你可以访问一个对象的类名

obj.__class__.__name__

您需要在创建实例后执行此操作。最直接的方法是

class MyClass:

def __init__(self):
self.display_name = self.__class__.__name__

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

关于python - 在python中动态获取类级别变量的类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17662057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com