加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何在Python中设置嵌套类的显示名称?

发布时间:2020-12-17 17:39:58 所属栏目:Python 来源:网络整理
导读:我有一个场景,我有多个同名的嵌套类,并且对其进行调试使我发疯. 这是一个草图: class Reference(object): # common functionality hereclass Fruit(object): # common functionality hereclass Apple(Fruit): class Ref(Reference): # specific functionali

我有一个场景,我有多个同名的嵌套类,并且对其进行调试使我发疯.

这是一个草图:

class Reference(object):
    # common functionality here

class Fruit(object):
    # common functionality here

class Apple(Fruit):
    class Ref(Reference):
        # specific functionality here

class Orange(Fruit):
    class Ref(Reference):
        # specific functionality here

# like 6 more fruits

我的问题是:任何列出引用对象的类名的操作都将其显示为mymodule.Ref,而不是mymodule.Apple.Ref,这将大有帮助.

有没有办法告诉Python为嵌套类的实例使用更好的名称?默认使用__str__,也可以使用__type__等.

奖金详情:

>使类结构扁平化和/或使用唯一名称可以做到这一点,但是(a)增加了名称空间的混乱,并且(b)Fruit中的某些位使用cls.Ref / self.Ref.次优.
>如果重要的话,它是旧版2.7研究系统.实际上,如果3解决了这个问题,那将是我提升我们地位的一大堆有用的补充…

最佳答案
实际上,Python 3确实用__qualname__修复了此问题.该升级了.

https://www.python.org/dev/peps/pep-3155/#example-with-nested-classes

根据PEP原理(PEP 3155-类和函数的合格名称),在2.7中无法实现所需的功能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读