Python NameError:name";AnyName";没有定义
我正在尝试做一个基于链表和节点的N元树。但每当我尝试向树添加新值时,我总是得到: name错误:未定义名称“self” 我使用模块,因此必须从其他文件导入类 我在树代码的def addTree(self,value,parent=self.root)中得到这个错误: 树代码Python NameError:name";AnyName";没有定义,python,python-3.x,Python,Python 3.x,我正在尝试做一个基于链表和节点的N元树。但每当我尝试向树添加新值时,我总是得到: name错误:未定义名称“self” 我使用模块,因此必须从其他文件导入类 我在树代码的def addTree(self,value,parent=self.root)中得到这个错误: 树代码 from Resources.LinkedList import * class Tree: def __init__(self): self.root = LinkedList() def addTree(se
from Resources.LinkedList import *
class Tree:
def __init__(self):
self.root = LinkedList()
def addTree(self, value, parent = self.root):
parent.addLinkedList(value)
from Resources.Node import *
from Resources.Compare import *
class LinkedList:
def __init__(self):
self.first = None
def addLinkedList(self,value):
if (not self.first):
self.first = Node(value)
else:
compare = Compare()
if(compare.compare(self.first,value)>0):
stack = self.first
self.first = Node(value)
self.first.next = stack
return True
else:
previous = self.first
current = self.first.next
while(current):
if (compare.compare(current,value)<0):
previous = current
current = current.next
return True
elif (compare.compare(current,value)>0):
stack = current
previous.next = Node(value)
previous.next.next = stack
return True
else:
previous.next = Node(value)
previous.next.next = current.next
return True
previous.next = Node(value)
return True
节点代码
from Resources.LinkedList import *
class Node:
def __init__(self,name):
self.name = name
self.children = LinkedList()
self.next = None
链表代码
from Resources.LinkedList import *
class Tree:
def __init__(self):
self.root = LinkedList()
def addTree(self, value, parent = self.root):
parent.addLinkedList(value)
from Resources.Node import *
from Resources.Compare import *
class LinkedList:
def __init__(self):
self.first = None
def addLinkedList(self,value):
if (not self.first):
self.first = Node(value)
else:
compare = Compare()
if(compare.compare(self.first,value)>0):
stack = self.first
self.first = Node(value)
self.first.next = stack
return True
else:
previous = self.first
current = self.first.next
while(current):
if (compare.compare(current,value)<0):
previous = current
current = current.next
return True
elif (compare.compare(current,value)>0):
stack = current
previous.next = Node(value)
previous.next.next = stack
return True
else:
previous.next = Node(value)
previous.next.next = current.next
return True
previous.next = Node(value)
return True
来自资源。节点导入*
从资源。比较导入*
类链接列表:
定义初始化(自):
self.first=无
def addLinkedList(自身,值):
如果(非自我优先):
self.first=节点(值)
其他:
比较=比较()
如果(compare.compare(self.first,value)>0):
堆栈=自我优先
self.first=节点(值)
self.first.next=堆栈
返回真值
其他:
前一个=自我优先
当前=self.first.next
while(当前):
如果(比较。比较(当前,值)0):
堆栈=当前
previous.next=节点(值)
previous.next.next=堆栈
返回真值
其他:
previous.next=节点(值)
previous.next.next=当前.next
返回真值
previous.next=节点(值)
返回真值
同样感谢您的帮助,我对Python有点陌生,我不知道我做错了什么。问题是“self”只在方法中定义,不能在参数中使用,在这些情况下的技巧是使用None作为参数并进行验证:
def addTree(self,value,parent=None):
如果父项为“无”:
parent=self.root
parent.addLinkedList(值)