Python中的自定义格式规范
在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
这两种格式时,随心所欲。