Python 3.5.2名称错误
我已经声明了我的类Python 3.5.2名称错误,python,python-3.x,Python,Python 3.x,我已经声明了我的类Customer,并试图从类实例中提取数据,我的方法get\u place\u in\u queue工作正常,但当我运行get\u nr\u差事时,它会出现错误: "name 'nr_errands' is not defined" 到目前为止,我的代码是: class Customer: def __init__(self,index_number,place_in_queue,nr_errands): self.index_number=index
Customer
,并试图从类实例中提取数据,我的方法get\u place\u in\u queue
工作正常,但当我运行get\u nr\u差事
时,它会出现错误:
"name 'nr_errands' is not defined"
到目前为止,我的代码是:
class Customer:
def __init__(self,index_number,place_in_queue,nr_errands):
self.index_number=index_number
self.place_in_queue=place_in_queue
self.nr_errands=nr_errands
def get_place_in_queue(self):
return place_in_queue
def get_index_number(self):
return index_number
def get_nr_errands(self):
return nr_errands
test=Customer(2,4,5)
test.get_nr_errands()
您忘记了使用
self
访问实例变量。你需要:
class Customer:
def __init__(self,index_number,place_in_queue,nr_errands):
self.index_number=index_number
self.place_in_queue=place_in_queue
self.nr_errands=nr_errands
def get_place_in_queue(self):
return self.place_in_queue # <-- here
def get_index_number(self):
return self.index_number # <-- here
def get_nr_errands(self):
return self.nr_errands # <-- here
class客户:
定义初始(self、索引编号、在队列中的位置、差事):
self.index\u number=索引号
self.place_in_队列=place_in_队列
self.nr\u差事=nr\u差事
def get_place_在_队列中(自我):
返回self.place_in_queue#您忘记使用self
访问实例变量。你需要:
class Customer:
def __init__(self,index_number,place_in_queue,nr_errands):
self.index_number=index_number
self.place_in_queue=place_in_queue
self.nr_errands=nr_errands
def get_place_in_queue(self):
return self.place_in_queue # <-- here
def get_index_number(self):
return self.index_number # <-- here
def get_nr_errands(self):
return self.nr_errands # <-- here
class客户:
定义初始(self、索引编号、在队列中的位置、差事):
self.index\u number=索引号
self.place_in_队列=place_in_队列
self.nr\u差事=nr\u差事
def get_place_在_队列中(自我):
return self.place#u in#u queue#应该是return(self.nr_差事)
nr\u差事
是在\uuu init\uuuu
中的实例上设置的,您需要通过self
获取它。对于其余部分也是如此。非常确定get\u place\u in_queue
不起作用,除非您碰巧还有一个名为place\u in_queue
的全局变量。当然,您实际上根本不需要这些方法中的任何一种。不要将parens与return
一起使用,这表明它们有效果。只需返回self.nr\u差事
。您应该修复\uuuu init\uuuu
方法中的代码缩进。应该是返回(self.nr\u差事)
nr\u差事
是在\uuu init\uuuu
中的实例上设置的,您需要通过self
获取它。对于其余部分也是如此。非常确定get\u place\u in_queue
不起作用,除非您碰巧还有一个名为place\u in_queue
的全局变量。当然,您实际上根本不需要这些方法中的任何一种。不要将parens与return
一起使用,这表明它们有效果。只需返回self.nr\u差事
。您应该修复\uuuuu init\uuuu
方法中的代码缩进。