我有一个链表。当我调用list.push()
时,它工作得很好,但是当我在funtioninit()
中执行同样的操作时,它什么也不做。有什么问题吗?
class Node:
def __init__(self, data):
self.data = data
self.nextNode = None
def __str__(self):
return str(self.data)
class linkedList:
def __init__(self):
self.head = None
self.end = None
def isEmpty(self):
return self.head == None
def push(self, item):
new_node = Node(item)
if not self.head:
self.head = self.end = new_node
else:
new_node.nextNode = self.head
self.head = new_node
#doesnt work
def init():
list = linkedList()
list.push("a")
init()
print(list.isEmpty()) #True
#works
list = linkedList()
list.push("a")
print(list.isEmpty()) #False
最佳答案
在函数外部,不能访问在函数内部创建的本地对象。返回它使其可用:
def make_list():
my_list = linkedList()
my_list.push("a")
return my_list
my_list = make_list()
print(my_list.isEmpty())
不要为对象使用名称
list
,因为它会隐藏内置的list
。关于python - 调用链表功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33846163/