Python:调用方法的问题
我是Python新手,我编写了一个用于管理简单电话簿的类。我已经删除了与此帖子无关的方法Python:调用方法的问题,python,Python,我是Python新手,我编写了一个用于管理简单电话簿的类。我已经删除了与此帖子无关的方法 class Phonebook: def __init__(self): self.book = {} def newEntry(self, name, number): self.book[name] = number def findNumber(self, name): return self.book[name]
class Phonebook:
def __init__(self):
self.book = {}
def newEntry(self, name, number):
self.book[name] = number
def findNumber(self, name):
return self.book[name]
def nameList(self):
list = self.book.keys()
list.sort()
for k in list:
print k, self.book[k]
我的问题涉及最后一种方法,nameList,它按字母顺序打印电话簿条目name和phone no。最初,我尝试了以下方法:
def nameList(self):
list = self.book.keys()
list.sort()
for k in list:
print k, findNumber(k)
但是,这引发了一个NameError全局名称“findNumber”未定义错误。有人能解释为什么这不起作用吗
提前感谢。这不起作用,因为findNumber不是一个全局定义的函数。它是对象上的一个方法,因此要调用它,需要调用self.findNumberk
因此,您的示例如下所示:
def nameList(self):
list = self.book.keys()
list.sort()
for k in list:
print k, self.findNumber(k)
这不起作用,因为findNumber不是全局定义的函数。它是对象上的一个方法,因此要调用它,需要调用self.findNumberk
因此,您的示例如下所示:
def nameList(self):
list = self.book.keys()
list.sort()
for k in list:
print k, self.findNumber(k)
在类内时,FindNumber应作为self.FindNumber访问
或者作为电话簿。findNumberself,k
因为在类下声明的变量或函数成为类的属性。findNumberk在类内时应作为self.findNumberk访问
或者作为电话簿。findNumberself,k
因为在类下声明的变量或函数成为类的属性。您需要将self添加到findNumber中
因此,它将成为:
def nameList(self):
list = self.book.keys()
list.sort()
for k in list:
print k, self.findNumber(k)
否则它不知道findNumber来自哪里,因为它只在类或self中定义。您需要将self添加到findNumber中
因此,它将成为:
def nameList(self):
list = self.book.keys()
list.sort()
for k in list:
print k, self.findNumber(k)
否则它不知道findNumber来自何处,因为它只在类或self中定义。请不要命名变量列表,它已经是内置列表类型的名称。请不要命名变量列表,它已经是内置列表类型的名称。没问题!如果这确实解决了你的问题,你能吗?谢谢完成几分钟前我不会接受你的回答。没问题!如果这确实解决了你的问题,你能吗?谢谢完成在几分钟过去之前,我是不会接受你的回答的。