? ? ? ?通常情况下,python中想了解该对象的基本信息,直接使用print输出即可,但是对于类的实例化对象,想要知道他都有什么属性,它们的值各是多少等等。这时候直接使用print默认情况下,输出的信息是“类名+object at+内存地址”,并不会输出类中相关的值。
? ? ? ?想要得到类中相应属性的值可以重写__repr__方法
from tabulate import tabulate
import pprint
class FLOWER:
def __init__(self, name, color):
self.name = name
self.color = color
def __repr__(self):
table_header = ["keys", "values"]
exp_table = [
(str(k), pprint.pformat(v))
for k, v in vars(self).items()
if not k.startswith("_")
]
return tabulate(exp_table, headers=table_header, tablefmt="fancy_grid")
flower = FLOWER('narcissu', 'white')
print(flower)
输出:
╒════════╤════════════╕
│ keys │ values │
╞════════╪════════════╡
│ name │ 'narcissu' │
├────────┼────────────┤
│ color │ 'white' │
╘════════╧════════════╛
|