python程序执行顺序 程序入口

写下此文章,旨在帮助python初学者更加深入了解python代码的执行过程和执行入口,对代码整体有个清晰的理解。博主在自学python过程中,常常搞不清楚python的入口,而学过c的朋友肯定清楚的了解c语言的入口是mian函数。

1.python和c的区别

①语言类型和性能

Python是一种解释型语言,它先将代码(.py)编译成字节码(.pyc),然后由解释器执行,生成机器码,这使得Python的运行速度较慢,但提供了更好的可读性和可维护性。

C语言是一种编译型语言,它需要将源代码直接编译成机器代码,这使得C语言的执行速度快,效率高。

②语法和内存管理

Python的语法简洁,它使用自动垃圾收集器进行内存管理,减少了内存泄漏的可能性。

C语言的语法相对繁琐,需要程序员自行管理内存,如手动进行内存分配和释放。

③应用领域

Python因其高级特性、丰富的库和框架,更适合于Web开发、数据分析、人工智能、科学计算和自动化脚本编写。

C语言因其低级特性和直接访问硬件的能力,通常用于系统级编程、嵌入式系统开发、操作系统、网络协议、高性能计算等领域。

④可移植性和交互性

Python具有良好的跨平台支持,易于学习和使用。

C语言的可移植性较差,需要在不同的平台上进行不同的编译。

2.python的入口节点

c程序的运行从main函数开始,而python则不同,python是解释型语言,不像编译型语言那样先将程序编译成二进制以后再运行,而是逐行解释运行,所有python代码的执行顺序就是从第一行开始,逐行往下,没有统一的入口。

既然是从第一行开始运行,为什么是python没有统一的入口呢?第一行不是入口吗?

答:第一行是入口,是程序执行的入口。而又不像c那样,代码执行在main函数中。举例:

例1.如果我们在.py文件中这样编写

(以下代码都是从第一行开始编写)

print("Hello world!")

运行将打印Hello world!

例2.如果我们在.py文件这样编写

def    test():

     print("123")

print("456")

运行将打印456

例3.如果我们在.py文件这样编写

def    test():

     print("123")

test()

print("456")

运行将打印

123

456

例4.如果我们现在有两个文件main.py和text.py

main.py这样编写:

import    text     #导入text模块

def    test():

     print("123")

test()

print("456")

_________________________

text.py这样编写:

def    text():

    print("我是text")

print("789")

_________________________

运行main.py将打印

789

123

456

总结:通过上面几个例子可以得到,python代码执行从第一行开始,逐行解释,即使第一行是导入模块,也会优先执行模块,被导入模块也会从第一行开始执行。

通过☝️可以发现如果没有一个统一的入口节点,不便于管理代码。所有就存在了一个特殊的机制。

在Python中,每个模块都有一个特殊的属性__name__,这个属性在不同的情况下会有不同的取值。当一个模块被直接执行时,__name__的值为__main__;当一个模块被导入时,__name__的值为模块的名称。

因此,我们可以利用__name__属性来判断一个模块是被导入还是直接执行。当模块是直接执行时,我们就可以进入 if __name__ == '__main__'的逻辑中。可以这样自定义main函数,起到管理:

__________________________________

def    main(): #在这里编写你的程序入口逻辑 

    print("Hello, World!")

# 当模块被直接执行时,执行main()函数

if    __name__ == '__main__':

    main()

_________________________________

希望对你有所帮助,加油!

 

 

 

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值