提问人:Danish Mashkoor 提问时间:10/12/2021 最后编辑:WoodfordDanish Mashkoor 更新时间:10/13/2021 访问量:41
在同一类中定义之前使用另一个方法中的方法?
Using a method in another method before definition in same class?
问:
此代码的工作原理:
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
为什么一个有效而另一个无效?如果我在另一个函数中使用一个未定义的函数,它可以完美地工作,但是如果我在另一个方法中使用未定义的方法,它会给我名称错误,为什么?
答:
1赞
CasseroleBoi
10/12/2021
#1
为什么第一个代码有效?
因为当调用 funct_a() 时,funct_b已经定义好了
为什么第二个代码没有?
因为通过使用解释器搜索在类作用域之外定义的函数,而不是类方法。用funct_b()
funct
self.funct_b()
P.S. 不要发布屏幕截图,而是粘贴代码
评论
self.funct_b()
?