【问题标题】:Class name not found in main method - python在主要方法中找不到类名 - python
【发布时间】:2018-01-08 07:02:47
【问题描述】:

所以我的代码是:

class myClass:

    @staticmethod
    def func():
        print('foo')

    if __name__ == "__main__":
        myClass.func()

但是当我运行它时,我收到以下错误:

Traceback (most recent call last):
  File "myClass.py", line 1, in <module>
    class myClass:
  File "myClass.py", line 8, in myClass
    myClass.func()
NameError: name 'myClass' is not defined

我该如何解决这个问题?

【问题讨论】:

  • if __name__ .. 不应该inside类定义中(即缩进太多,应该在“ main”文件,不管它是什么)。另外,请确保发布的代码是实际的代码/问题。它与第一次编辑相比发生了很大变化。
  • 可能是缩进方式。删除以if __name__ == "__main__":开头的块中的缩进
  • python != java. main 在这里不是一个方法,事实上,没有定义为main 的函数。无论如何,python 中的 main 函数并没有什么特别之处。
  • 注意,[main]标签中的文字:“在很多编程语言中,main函数、子程序或方法标志着程序的入口点。一般是第一个程序员编写的程序启动时运行的函数。” Python 不是其中一种语言。

标签: python main


【解决方案1】:

这是一个缩进问题。

class myClass:

    @staticmethod
    def func():
        print('foo')

if __name__ == "__main__":
    myClass.func()

以上内容在 Python 解释器中可以正常工作。目前,在您的代码中,它试图在 if 块内的 class 定义内运行 myClass.func(),即当它试图创建 myClass 时,它正试图运行 myClass.func() 并且它失败了您的帖子中提到的错误。

【讨论】:

    【解决方案2】:
    class myClass:
    
        @staticmethod
        def func():
           print('foo')
    
    if __name__ == "__main__":
        myClass.func()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-30
      • 2016-03-15
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多