我有一个类,我希望能够打印一个对象的短字符串表示或长字符串表示。理想情况下,__str__()
会接受一个选择返回哪个字符串的标志,print()
也会接受这个标志,并相应地使用__str__()
的正确版本,但似乎不存在类似的情况。你知道吗
我知道我可以在我的类中包含print_short()
和print_long()
方法来选择正确的字符串,但是这看起来不像Python,并且违反了python3的更改,其中print()
是一个函数。这也会绕过__str__()
的使用,这似乎也是不和谐的。你知道吗
处理这件事的最邪恶的方法是什么?涉及__repr__()
的解决方案将不起作用,因为我已经按照预期使用了__repr__()
,以明确地表示对象本身。你知道吗
str
的工作是提供对象的“字符串”表示,您决定的任何表示都是最有用的。你知道吗如果要控制对象的格式化,请重写
__format__
。你知道吗如果你有这样的代码
s.__format__
接收冒号后面的所有内容(在本例中是r
)作为其spec
参数;然后完全取决于__format__
的定义它如何使用spec来决定返回哪个字符串值。你可以这样做相关问题 更多 >
编程相关推荐