【问题标题】:Java syntax equivalent to Python syntax?Java 语法等同于 Python 语法?
【发布时间】:2015-04-06 00:48:03
【问题描述】:

因此,如果您曾经查看过我的页面,您可能会发现我是一名 10 年级学生,他刚刚在高中开始了计算机科学课程。耶! :)

我们正在学习的语言是 Java,在我看来,它与 Python 非常不同(至少到目前为止)。但是,在启动 Java 程序时,我注意到了一件事。对不起,如果语法关闭或错误。

public static void main(String [] args){
    String school = "A beautiful school";
    System.out.print(school);
}

这是否等同于 Python 的:

if __name__ == "__main__":
    school = "A beautiful school"
    print(school)

我已经问过我的老师,但似乎没有得到我完全理解的答案。我也看了一下这个question,但它似乎只回答了不同的关键字publicstaticvoid,(目前我只是稍微了解)。

那么public static void main 的行为是否与if __name__ == "__main__" 相同?如果不是,两者有什么区别?提前致谢!

【问题讨论】:

  • 不。 java中的main()是你程序的主要函数。在 python 中,每个模块/源文件都可以有这样的主要语句。它在您直接运行给定的模块/源文件时执行。如果您只是导入模块,则不会执行。如果模块可以用作独立程序或用于快速测试,它很有用。
  • 所以当我明确说要运行我的 java 类时,java 中的 main() 就会运行,这与 Python 不同,它可以用于任何事情。我说的对吗?
  • 这对 Java 来说是正确的:main 是使用“java”命令运行你的类时运行的方法。
  • @Marcin 我的 Java 有点生疏了,但我很确定您可以拥有任意数量的带有 main 方法的类,并在调用程序。考虑到两种语言之间的所有其他差异,这几乎是相似的。
  • 寻找等价物通常不是学习编程语言的好方法。每种语言都有自己的思维方式,如果您按照自己的方式学习它,最适合您。

标签: java python syntax


【解决方案1】:

当您执行if __name__ == "__main__": 时,您正在检查您是否已经在main 中。

这是不同的,因为整个 python 脚本被认为是“main”,就像 public static void main 在 java 中被认为是“main”一样。

当您运行 python 文件时,它会从最顶层开始向下查找可执行语句(它会绕过函数definitions 和classes 等声明)。

当您运行 java 类时,它会查找 main 方法并从那里开始。

有这个if __name__ == "__main__":的原因是它只有在你直接运行python文件时才会执行。

您很快就会了解到,python 文件也可以被视为“模块”,可以包含在其他 python 脚本中。在这种情况下,您不希望隐式执行此“主”逻辑。

就像您在将 main 类作为 Java 中较大应用程序的一部分导入时几乎从未调用它一样。

【讨论】:

  • 好的。我知道 Python 基本上是一堆具有各种函数和类的文件,它们基本上都由一个主脚本组合在一起(至少这就是我过去几年用 Python 编程的方式),而在 Java 中它只是执行 public static void main 中发生的事情?
  • Public static void main 是所谓的“入口点”,它是主要程序执行开始的地方(尽管各种声明和初始化活动可以事先发生)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 2020-08-25
  • 1970-01-01
相关资源
最近更新 更多