我正在关注“Python崩溃课程”这本书,并且我一直得到这个
NameError:名称'get_step'未定义
它位于python3中,两个文件都位于同一目录中。
所以......这个函数是在这个类中定义的:
并将该类导入:
它调用fill_walks,fill_walks调用get_step。我在这里失踪了什么?请有人帮帮我
答案 0 :(得分:0)
在random_walk.py中 变化
def get_step():
到
def get_step(self): #<--- self?
答案 1 :(得分:0)
您知道在引用x_values
,y_values
和num_points
时,您必须说self.x_values
,self.y_values
等吗?这适用于您的实例的所有属性,包括方法。因此,当您想要在您的课程中定义get_step()
和get_step
时,您必须致电self.get_step()
。
此外,当您在类上定义方法时,默认情况下它会调用实例方法,并且会以实例作为第一个参数自动调用。您已正确定义fill_walk
,def fill_walk(self):
但get_step
目前未正确定义。你要么必须
def get_step(self):
....
或者,由于get_step本身不需要访问任何实例属性,您可以通过如下定义将其标记为静态方法:
@staticmethod
def get_step():
...