Skip to main content
 首页 » 编程设计

python之我的 __str__ 太长了,最好的写法

2025年05月04日23小虾米

我的一个类中有这个 __str__ 方法,但在我看来,它在我的 python 约定代码中看起来有点太长,而且 autopep 没有给我任何提示。

所以我想知道什么是最 pythonic 的输入方式。

我需要分隔线,因为解决方案和表格的形状分别是 52 和 52x52。

def __str__(self): 
    return "Cost solution : " + str(self.cost) + "\nSolution: " + str(self.solution) + "\n\nTable:" + str(self.table) 

请您参考如下方法:

def __str__(self): 
    pattern = ''' 
    Cost solution: {} 
    Solution: {} 
    Table: {} 
    ''' 
    return pattern.format(self.cost, self.solution, self.table) 

如果您不希望在使用多行字符串时在输出中出现额外的制表符,您需要在它们的代码中删除制表符。

class Test(object): 
    pattern = ''' 
Cost solution: {} 
Solution: {} 
Table: {} 
''' 
    def __init__(self): 
        self.cost = 0; 
        self.solution = 'StackOverflow' 
        self.table = '1|2|3|4' 
 
    def __str__(self): 
        return self.pattern.format(self.cost, self.solution, self.table) 
 
print Test()