Python:如何让自定义类对象默认展示指定属性(如DataFrame)
解决方案
直接重写类的__str__或__repr__魔法方法就能实现需求,这两个方法专门用来控制对象的字符串展示形式:
__str__会在调用print()时触发,适合返回易读的内容__repr__会在交互式环境直接输入对象名、或调用repr()时触发,通常用于返回精确、可还原对象的表示
代码示例
假设你的自定义类结构如下:
import pandas as pd class SuperTable: def __init__(self, df): self.original_dataframe = df # 自定义的合并、去重等方法示例 def deduplicate(self): self.original_dataframe = self.original_dataframe.drop_duplicates()
只需添加__str__方法,就能让print(mysupertable)直接输出内部DataFrame:
def __str__(self): return str(self.original_dataframe)
如果还想让交互式环境下直接输入对象名就显示DataFrame,再补充__repr__方法:
def __repr__(self): return repr(self.original_dataframe)
要是希望两个方法表现一致,也可以让它们互相调用:
def __str__(self): return str(self.original_dataframe) def __repr__(self): return self.__str__()
内容的提问来源于stack exchange,提问作者Berti1989
相关产品推荐
相关产品推荐

