Python中的自定义格式规范

2 投票
3 回答
1191 浏览
提问于 2025-04-15 21:06

在Python中,怎么给一个类添加自定义的格式说明呢?比如说,如果我写了一个矩阵类,我想定义一个'%M'(或者类似的东西),这样就可以把整个矩阵的内容都打印出来……

谢谢

3 个回答

0

我觉得不可能为打印定义一个新的格式说明符。你可以在你的类里添加一个方法,用来设置你想要的格式,然后定义这个类的str方法,让它根据你设置的格式来调整输出。这样,主要的打印语句还是会使用'%s'这个格式说明符,并调用你自定义的str方法。

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)
5

定义 __str__()__unicode__() 和/或 __repr__() 这些方法,可以让你在使用 %s%r 这两种格式时,随心所欲。

撰写回答