【发布时间】:2018-08-08 19:03:43
【问题描述】:
我有 3 个 python 类 A、B 和 C。A 包含 B 对象,B 包含 C 的对象。我想要的是当我打印一个类对象时,它应该以下面的格式打印出来。 C 类内部也可以有更多的嵌套。
A:
loc : XYZ
qual : ABC
b :
name : ABC
age : 30
c :
address : ABC
phn : 99009
以下是供参考的类。
class C(object):
def __init__(self):
self.address='ABC'
self.phn=99009
class B(object):
def __init__(self):
self.name='ABC'
self.age=30
self.c = C()
class A(object):
def __init__(self):
self.loc = 'XYZ'
self.qual = 'ABC'
self.b = B()
【问题讨论】:
-
既然您提到漂亮的打印,并使用标签
pretty-print,我假设您只是想控制pprint模块如何处理您的对象?最简单的做法是创建一个自定义的PrettyPrinter子类,该子类覆盖其中记录的方法,因此它将您的对象作为“递归对象”处理,如列表和字典。然后,您只需使用该类的实例代替pprint模块。
标签: python pretty-print