在我的场景中,我有多个嵌套的类都具有相同的名称,并且对其进行调试使我发疯。
这是草图:
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__
等。
奖金详情:
cls.Ref
/ self.Ref
。次优。
答案 0 :(得分:2)
实际上,Python 3确实使用__qualname__
进行了修复。是时候升级了。
https://www.python.org/dev/peps/pep-3155/#example-with-nested-classes
根据PEP原理( PEP 3155-类和函数的合格名称),在2.7中无法实现所需的功能。