Pet*_*one 0 python binary-tree
我正在努力建造一棵树.我乞求下一段代码:
>>> class tree:
def __init__(self, charge, left=None, right=None):
self.charge = charge
self.left = left
self.right = right
>>> class tree:
def __str__(self):
return str(self.charge)
Run Code Online (Sandbox Code Playgroud)
写完之后我写了下一篇
>>> left = tree(2)
Run Code Online (Sandbox Code Playgroud)
我这样写是因为我应该按照我使用的手册进行教学.但是我收到此错误:
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
left = tree(2)
TypeError: this constructor takes no arguments
Run Code Online (Sandbox Code Playgroud)
如何使用从下到上的开始代码构建一棵树?顺便说一句,我的python版本是2.7.2.非常感谢你的帮助.
您正在定义一个类,然后重新定义它.每次你说class tree:你创建一个新的类定义,覆盖前一个.由于最后一个定义tree没有定义__init__方法,因此它不带任何参数.
您在交互式解释器中执行此操作的事实使事情变得复杂,因为只要您键入空行,就会结束您正在处理的任何定义.你可能会更好,当涉及到类,只需编辑文本文件mytree.py然后键入>>> import mytree.
此外,如果您使用的手册建议class foo:定义类,并且它是关于Python 2的,那么它是一本非常古老的手册.使用最新版本的Python 2时,您应该这样做:
class Tree(object):
def __init__(self, ...)
...
Run Code Online (Sandbox Code Playgroud)
正如delnan所指出的,你不需要object在Python 3中明确地继承,所以你可以将括号留空.实际上,你可以完全省略它们; 当他们不在时,我的眼睛会错过那些parens,但是Dive Into Python 3根本不包括它们.
| 归档时间: |
|
| 查看次数: |
580 次 |
| 最近记录: |