我正在学习Python中的绳索.当我尝试Foobar使用该print()函数打印类的对象时,我得到如下输出:
<__main__.Foobar instance at 0x7ff2a18c>
Run Code Online (Sandbox Code Playgroud)
有没有办法可以设置类及其对象的打印行为(或字符串表示)?例如,当我调用类对象时,我想以某种格式打印其数据成员.如何在Python中实现这一点?print()
如果您熟悉C++类,则可以通过为类ostream添加friend ostream& operator << (ostream&, const Foobar&)方法来实现上述标准.
有没有时,你应该实现一个python约定__str__()对__unicode__().我已经看到类的覆盖__unicode__()频率高于__str__()它但看起来并不一致.当一个与另一个相比更好的时候是否有特定的规则?是否有必要/良好做法同时实施?
那么这个交互式python控制台代码片段将告诉所有内容:
>>> class Test:
... def __str__(self):
... return 'asd'
...
>>> t = Test()
>>> print(t)
asd
>>> l = [Test(), Test(), Test()]
>>> print(l)
[__main__.Test instance at 0x00CBC1E8, __main__.Test instance at 0x00CBC260,
__main__.Test instance at 0x00CBC238]
Run Code Online (Sandbox Code Playgroud)
基本上我想asd在打印列表时打印三个字符串.我也试过,pprint但它给出了相同的结果.