Python 3:NameError:未定义名称'functionName'

时间:2016-04-12 16:39:48

标签: python python-3.x

我是编程新手,我遇到了一个无法找到答案的问题......所以这就是:

`class MyClass:
    def printsmth():
        print("Hello")
    def main():
        printsmth()
    if __name__ == '__main__':main()`

我收到错误消息:

Traceback (most recent call last):
  File "untitled.py", line 1, in <module>
    class MyClass:
  File "untitled.py", line 6, in MyClass
    if __name__ == '__main__':main()
  File "untitled.py", line 5, in main
    printsmth()
NameError: name 'printsmth' is not defined

包含的代码只是一个示例,但它与我的实际代码相同,如果我将代码从main()转移到if name =='< strong> main '比它完美无缺。问题是我想在代码的某些部分重新启动main()方法,但我甚至没有去过那个,因为我想不出这个错误的解决方案:/你能帮助我吗?

P.S我试图从MyClass移动main()和 name ==' main ',但它没有用。

1 个答案:

答案 0 :(得分:0)

您忘记将self作为方法的第一个参数传递。完成此操作后,您可以调用self.printsmth()作为方法。现在它很困惑,因为你把它称为函数而不是方法。

class MyClass:
    def printsmth(self):
        print("Hello")
    def main(self):
        self.printsmth()