我正在尝试学习python,并且在理解此类为什么会引发错误方面有所作为NameError: name 'self' is not defined
。我在类中遵循了Python调用函数并添加了``self
但是这没有帮助。这是代码,任何人都可以指出原因。
class Back(object):
def square(self,x):
y = x * x
return y
def main():
self.square(3)
if __name__ == "__main__":
main()
我用它来称呼它 python square.py
您忘记将self
的方法签名放入main()
。它应该看起来像这样
def main(self):
self.square(3)
没有它,self
实际上是不在您的方法范围内定义的,因此Python会抱怨。
编辑:同样,Some programmer dude
如前所述,您的代码永远不会创建只执行main的类的实例。缩进也存在问题(可能是复制粘贴错误)。
尝试以下方法:
class Back(object):
def square(self,x):
y = x * x
return y
def main():
back = Back()
print(back.square(3))
if __name__ == "__main__":
main()
请注意main
在根级别的定义方式(不像那样缩进square
)。这种方式不是班级的一部分,也不需要self
。您可以Back
再次将其设为该类的方法,如下所示:
class Back(object):
def square(self,x):
y = x * x
return y
def main(self):
print(self.square(3))
if __name__ == "__main__":
back = Back()
back.main()
好吧,我承认这是最后一个,这样做并没有真正意义。但是我只是试图说明范围以及python中函数和方法之间的区别(考虑到这个问题,我认为这种逻辑可能会对OP有所帮助)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句