【发布时间】:2017-02-11 17:26:14
【问题描述】:
我正在使用 How to Think Like a Computer Scientist 自学 Python。我从文本中复制了这段代码,但我的由于某种原因抛出了一个错误。谁能看到我错过了什么?为什么Python说print_list没有定义?
class Node:
def __init__(self, cargo = None, next = None):
self.cargo = cargo
self.next = next
def __str__(self):
return str(self.cargo)
def print_list(node):
while node:
print node,
node = node.next
print
这是错误:
==== RESTART: /Desktop/Programming Career/Untitled.py ====
Traceback (most recent call last):
File "Users/Desktop/Programming Career/Untitled.py", line 24, in <module>
print_list(node1)
NameError: name 'print_list' is not defined
我尝试像这样定义 print_list:
def print_list(self):
for node in self:
print node,
node = node.next
print
但我得到同样的错误:
NameError: name 'print_list' is not defined
【问题讨论】:
-
将
print_list移出Node的定义。 -
您的代码缩进有问题,请修复,我们可以帮助您!
-
取消缩进不属于
Node类的函数print_list()。 -
@ForceBru 感谢您的提示!我已经修复了缩进
-
print_list在类范围内吗?为什么它没有self?
标签: python methods linked-list nodes