python中的自定义格式规范

时间:2010-03-31 16:41:52

标签: python format specifications

在python中,如何将自定义格式规范添加到类中?例如,如果我写一个矩阵类,我想 定义'%M'(或某些此类),然后转储矩阵的全部内容...

感谢

3 个答案:

答案 0 :(得分:5)

定义__str__() / __unicode__()和/或__repr__()方法可让您根据需要使用现有的%s%r格式说明符。

答案 1 :(得分:0)

我不相信可以为print定义新的格式说明符。您可以在类中添加一个方法来设置您使用的格式,并定义类的 str 方法,以根据其设置方式调整输出。然后主打印语句仍将使用'%s'说明符,并调用自定义 str

答案 2 :(得分:0)

如果您真的想使用自定义说明符,则不能以与Python语言和标准库的其余部分兼容的方式执行此操作。 利用Python提供的功能(%s%r)并根据您的需求进行自定义,重写__str__()__repr__()

class Matrix(object):
    def __str__(self):
        return convert_to_pretty_matrix_string(self)
    def __repr__(self):
        return convert_to_textual_matrix_format(self)