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

问题描述 投票:0回答:1

[我正在尝试学习python并乐于理解为什么该类引发错误NameError: name 'self' is not defined。我遵循Python call function within class并添加了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称呼它>

我正在尝试学习python,并且在理解此类为什么会引发错误NameError时有所作为:Name'self'未定义。我在类内遵循Python调用函数并添加了...] [

您忘记将self放在main()的方法签名中。它应该看起来像这样
def main(self): self.square(3)

除此之外,self实际上未在您的方法范围内定义,因此Python会抱怨。

编辑:而且,正如[C​​0]所提到的,您的代码永远不会创建只执行main的类的实例。您的缩进也有问题(可能是复制粘贴错误)。

尝试以下方法:

Some programmer dude

注意在根级别如何定义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

好吧,这最后一个,我承认这样做不是很有意义。但是我只是想说明范围以及python中函数和方法之间的区别(考虑到这个问题,我认为这种逻辑可能会对OP有所帮助)。

python-3.x
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.