【发布时间】:2019-08-09 07:12:36
【问题描述】:
我有一个场景,我有多个同名的嵌套类,调试它让我发疯。
这是一个草图:
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 中永远不会做的事情。
-
@DanielRoseman Django 使用嵌套类 Meta。
标签: python class inner-classes