大家好!上次我们简单聊了 Python 为什么没有 main 函数,今天我们来更详细地探讨一下,并用代码进行佐证,帮助大家彻底理解 Python 的代码执行机制!
1. Python 代码如何执行?
Python 是一种解释型语言,这意味着代码不需要编译成机器码,而是由 Python 解释器逐行读取并执行。
2. `__name__` 变量:幕后英雄
-
每个 Python 模块 (包括你写的脚本文件 .py) 都有一个内置的变量 __name__。
-
当你直接运行一个 Python 脚本时,该脚本的 __name__ 变量会被解释器自动设置为 "__main__"。
-
当你将一个 Python 文件作为模块导入到其他文件中时,该文件的 __name__ 变量会被设置为模块名 (即文件名,不带 .py 后缀)。
3. 代码示例:见证 `__name__` 的变化
创建两个文件:
-
my_module.py (作为模块)
# my_module.py
def my_function():
print("这是一个函数,来自 my_module")
print(f"my_module 的 __name__ 值为: {__name__}")
-
main_script.py (作为主脚本)
# main_script.py
import my_module
def main():
print("这是 main 函数,来自 main_script")
my_module.my_function()
print(f"main_script 的 __name__ 值为: {__name__}")
if __name__ == "__main__":
main()
运行结果:
-
直接运行 my_module.py:
my_module 的 __name__ 值为: __main__
-
直接运行 main_script.py:
my_module 的 __name__ 值为: my_module
main_script 的 __name__ 值为: __main__
这是 main 函数,来自 main_script
这是一个函数,来自 my_module
4. 分析:
-
当直接运行 my_module.py 时,它的 __name__ 值为 "__main__",所以 print 语句会被执行。
-
当运行 main_script.py 时:
-
首先导入 my_module,此时 my_module.py 中的代码会被执行,但 if __name__ == "__main__": 条件不成立,所以 my_module 中的 main 函数不会被执行。
-
然后执行 main_script.py 中的代码,此时 __name__ 为 "__main__",if 条件成立,main 函数会被执行,进而调用 my_module 中的 my_function。
-
5. 总结:
-
Python 利用 __name__ 变量巧妙地实现了类似 main 函数的功能,使得代码既可以作为模块导入,也可以作为独立脚本运行。
-
if __name__ == "__main__": 代码块中的代码只有在直接运行该脚本时才会被执行,这保证了模块化和代码结构的清晰性。
希望今天的讲解能够帮助你更深入地理解 Python 的代码执行机制!
全套Python学习资料分享:
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
三、python入门资料大全
四、python进阶资料大全
五、python爬虫专栏
六、入门学习视频全套
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
七、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
八、python最新面试题
标签:__,设定,name,Python,module,main,my From: https://blog.csdn.net/qq_36807888/article/details/144203049