matlab main函数_python(三)简述python的main函数与java的main函数区别

写过java的都知道,程序是有一个入口的,当然其他语言像C语言也是有的。这个入口程序也叫做main函数。

java的main函数是这么写的:

public static void main(String[] args) {}

当然类似的函数在python中也是有的,

if __name__ == "__main__":

但是他们有很大的不同,我们看一下维基百科是怎么解释的:

解释型语言(英语:Interpreted language),是一种编程语言。这种类型的编程语言,会将代码一句一句直接运行,不需要像编译语言(Compiled language)一样,经过编译器先行编译为机器代码,之后再运行。这种编程语言需要利用解释器,在运行期,动态将代码逐句解释(interpret)为机器代码,或是已经预先编译为机器代码的的子程序,之后再运行。

理论上,任何编程语言都可以是编译式,或解释型的。它们之间的区别,仅与程序的应用有关。许多编程语言同时采用编译器与解释器来实现,其中包括Lisp,Pascal,C,BASIC 与 Python。JAVA及C#采用混合方式,先将代码编译为字节码,在运行时再进行解释。

类似的还有

php,JavaScript、VBScript、Perl、Ruby、MATLAB,Shell都叫解释性语言,其实我们更喜欢叫他们为脚本。而java和C#就需要先编译成字节码,才能运行。

下面说一下优缺点:

解释型语言:程序不需要编译,程序在运行时才翻译机器语言,每执 行一次都要翻译一次。因此效率比较低。而编译型语言由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用编译型语言。但是对执行时间不是很关心的比如数据挖掘,数据分析之类的我们就可以使用解释型语言了。

由于是逐行执行,所以我们在编写python代码的时候一般会把main函数放到最后一行。

如果放到前面,则会报错,因为调用main函数的时候此时sayHello()方法在下面还没有完成初始化,main函数当然会报错。

038a875b8347430e3a8f2ae4023375b1.png

而java就无所谓,你放到哪里都可以正确执行。

还有一个细节就是,在python中

50b6210d8d812a9d7d06487ac6fbf87d.png

它不仅仅只执行main函数里面的内容的,因为它是逐行执行。所以最上面的

print("first")

也会先打印出来,而java则只会执行main函数里面的内容。

A.py

print("first")def sayHello(): str = "hello" print(str); print(__name__ + 'from A.sayhello()')if __name__ == "__main__": print('This is main of module "A.py"') sayHello() print(__name__ + 'from A.main')

B.py

import Aif __name__ == "__main__": print ('This is main of module "B.py"') A.sayHello() print(__name__)

当A作为一个模块被另一个文件调用的时候,我们可以看到

17aa36c0a38b81262925c4acdd5cce7f.png

first这一行是因为impor A打印出来的,而A的main函数并没有执行,足见python的设计也是很巧妙的。

所以我们应该把要执行的东西放到main函数中,无关代码不要随意的写到其他位置,否则会给调用带来麻烦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值