Python从类中的另一个函数调用一个函数

事实

我正在尝试学习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

takeshi2010

您忘记将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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章