我是 Python 的新手,并试图通过我所知道的语言——通过 Java 来理解一切。偶然发现if __name__ == "__main__",陷入了昏迷。我阅读了有关该主题的答案,但仍然很难“放下”。在 Java 语言中是否有类似的这些__name__yes ?"__main__"提前致谢。
PS不需要写重复。问题与 Java 没有类似物。不要从肩膀射击。请仔细阅读我的问题。
我是 Python 的新手,并试图通过我所知道的语言——通过 Java 来理解一切。偶然发现if __name__ == "__main__",陷入了昏迷。我阅读了有关该主题的答案,但仍然很难“放下”。在 Java 语言中是否有类似的这些__name__yes ?"__main__"提前致谢。
PS不需要写重复。问题与 Java 没有类似物。不要从肩膀射击。请仔细阅读我的问题。
单独地,这些结构不能被翻译成 Java,但是如果你理解它们的作用,它们是很可能的。
事实是,在 Python 中,任何模块都是可执行的——如果你运行它,它总是会得到 name
__main__。嗯__name__,这是当前模块的名称。因此,检查if __name__ == "__main__"验证模块是从命令行启动的,而不是从另一个模块导入的。换句话说,验证
if __name__ == "__main__"是程序的附加入口点。在 Java 中,程序的入口点是主要方法:
用户 Twiss 在评论中提供的链接中提供了有关此构造在 Python 中的作用的详细答案,我将不再转载。
在 Java 中,没有这种结构的类似物,也不可能。与 Python 不同,在 Java 中导入类不会自动执行其所有代码,因此不需要这样的拐杖。此外,在 Java 中,不能从任意类启动程序。程序的入口点只能是具有带有签名的方法的类
如果您尝试运行没有此类方法的类,则会抛出错误“找不到主方法”。