Ale*_*nov 6 python string methods tree operator-overloading
我决定使用str来打印树状结构树的内容,使用类似的东西
print tree
Run Code Online (Sandbox Code Playgroud)
树的节点都是用户创建的类的对象,我重载他们的__str__魔术方法,以便在缩进t标签之后使用子节点的str
def __str__ (self,t=0) :`
return t*'\t' + str(self.label) +':' +'\n'+ str(self.l,t+1)+'\n'+str(self.right,t+1)+'\n'
Run Code Online (Sandbox Code Playgroud)
但是我无法str使用该t参数调用,但我可以调用.node.__ str__(t=4)不是str,只是快捷方式的魔术方法?或者是因为解析器拒绝额外的参数str而不检查魔术方法?
PS我对行为感兴趣.我知道这不是打印树的最佳方式,它是一个黑客;)
想象一下这样.
def str(obj):
try:
return obj.__str__()
except ...:
...
Run Code Online (Sandbox Code Playgroud)
仅仅因为__str__可以采用更多参数,并不意味着str配置为通过这些参数.
| 归档时间: |
|
| 查看次数: |
3519 次 |
| 最近记录: |