我试图做一个基于链接列表和节点的N-Ary树。但是每当我试图给树添加一个新值时,我总是得到:
NameError:未定义名称“self”
我使用模块,所以我必须从其他文件导入类。
我在树代码的def addTree(self,value,parent=self.root)中遇到了这个错误
树代码
from Resources.LinkedList import *
class Tree:
def __init__(self):
self.root = LinkedList()
def addTree(self, value, parent = self.root):
parent.addLinkedList(value)
节点代码
from Resources.LinkedList import *
class Node:
def __init__(self,name):
self.name = name
self.children = LinkedList()
self.next = None
链接列表代码
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
也谢谢你的帮助,我对Python有点陌生,我不知道我做错了什么。
问题是“自我”只在方法中定义,不能在参数中使用,在这些情况下,诀窍是使用无作为参数并进行验证:
def addTree(self, value, parent = None):
if parent is None:
parent = self.root
parent.addLinkedList(value)
问题内容: 我在自学Python,只是在“探索”。Google说datetime是一个全局变量,但是当我尝试在终端中查找今天的日期时,我在问题标题中收到NameError吗? 问题答案: 您需要先导入模块: 之后,它可以工作:
问题内容: 我有以下代码,并在尝试运行它时收到以下错误消息: 我试图让Raspberry Pi在端口17上收到输入时运行HTML脚本: 问题答案: Python的布尔常量是大写的:与以大写字母和分别。 小写变体只是变量的有效免费名称,因此您可以将它们用于任何所需的变量,例如(不建议使用; P)。
我很难弄清楚为什么会出现错误:nameerror:name“convert tobinarydata”没有定义,有什么想法吗? 我认为函数convertToBinaryData的声明是正确的,尽管我不确定如何修复这个问题 回溯(最近一次调用):文件“C:\users\user............\testdb.py”,第20行,db.insertRawEcg(1,2,“C:\users\use
问题内容: 我使用cxfreeze从planrequest.py创建Windows可执行文件。看来工作正常,但是当我运行exe文件时,我得到了 在)要使用此修复程序的python状态中未定义名称出口。但是,我使用import sys。该代码可以作为python脚本正常运行(例如,在编译为可执行文件之前,我对命令行参数进行了广泛测试。) 问题答案: 导入sys不足以在全球范围内实现。 你要么要做 要
问题内容: 为什么这样的结构 给一个错误? 问题答案: 默认参数值在函数定义时评估,但仅在函数调用时可用。因此,参数列表中的参数不能相互引用。 将参数默认为默认值并在代码中为此添加测试是一种常见的模式:
问题内容: 我在Mac OS X上使用Python 2.6.1。 我有两个简单的Python文件(如下),但是当我运行时 我在终端上: 我尝试以不同的方式重命名文件和类,这就是为什么两端有x和z的原因。;) 文件sqlitedbx.py 文件update_url.py 问题答案: 您需要做: