理解python __repr__()方法

       通常情况下,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'    │
╘════════╧════════════╛

猜你喜欢

转载自blog.csdn.net/athrunsunny/article/details/124098770
今日推荐