gpt4 book ai didi

python - 从类定义中获取类的名称

转载 作者:行者123 更新时间:2023-11-28 22:29:20 26 4
gpt4 key购买 nike

<分区>

所以我有我的基类:

class Foo():
pass

我永远不会实例化这个类——我只是想把它作为一个自定义命名空间。我想要的其中一件事就是它的名字:

>>> Foo.__name__
'Foo'

但是我想把界面改成这样,这样就没有下划线了。从类对象中获取类的名称会发生​​很多次,所以它应该更清晰:

class Foo:
def name():
return Foo.__name__

这很好用!哦,除了我硬编码了名称“Foo”。我还不如让它返回一个字符串。这还不够好,因为我需要继承这个调整:

class Bar(Foo):
pass

>>> Bar.name()
'Foo'

没有布埃诺。

基本上,我需要一个返回类名的类函数,并且它在继承时仍然有效。我不能使用 self 因为我没有创建实例。有什么能达到类似的结果吗?函数知道调用它们的命名空间吗?如果我真的需要使用对象,我会使用,但就我的目的而言,这将比简单的类层次结构更丑陋。

编辑:我不相信这个问题与它所链接的问题相同。为另一个问题提供的解决方案——主要是调用 .__class__ 属性——不能作为这个问题的答案,因为在我的示例中我明确避免实例化对象。此外,此处提供的最佳答案(使用 @classmethod 装饰器将类对象作为“self”-esque arg)在链接的替代方案中无处可寻。此外,我相信我的问题比其所谓的重复问题更清晰、更基本。选择的答案也是如此。

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