在同一类中定义之前使用另一个方法中的方法?



代码正常运行:

def funct_a():
funct_b()
print("this is func a")
def funct_b():
print("this is funct_b")
funct_a()

但这没有,为什么?

class funct():
def funct_a(self):
funct_b()
print("this is func a")
def funct_b(self):
print("this is funct b")
x = funct()
x.funct_a()

错误:

NameError: name 'funct_b' is not defined

为什么一个工作而另一个不行?如果我在另一个函数中使用未定义的函数它工作得很好但是如果我在另一个方法中使用未定义的方法它会给我名字错误为什么?

为什么第一个代码工作?

因为当调用funct_a()时,funct_b已经被定义

为什么第二个代码没有?

,因为通过使用funct_b()解释器搜索在类作用域之外定义的函数,而不是funct类方法。使用self.funct_b()

注:不要贴截图,而是贴代码

最新更新