python中为什么要使用if __name__ == ‘__main__’
本文最后更新于308 天前,其中的信息可能已经过时,如有错误请发送邮件到3260245294@qq.com

在抖音看到的这个问题

忽然看到的,正好无聊发表下我的理解

理解Python中的 if __name__ == ‘__main__’

我感觉对初学者来说,理解 if __name__ == '__main__': 的概念确实可能会有些挑战,但这是学习Python中的一个重要和常见的概念,算是必经之路。

  1. 涉及模块和脚本的区别: 这个概念要求初学者理解Python中模块(module)和脚本(script)的区别,以及它们是如何交互的。
  2. 抽象性: __name__'__main__' 是抽象的概念,它们并不像变量和函数那样直观。理解它们需要一定的抽象思维能力。
  3. 并且用法是特定于Python的,原因在于它涉及到Python对模块和脚本执行方式的特殊处理。

什么是 if __name__ == ‘__main__’?

在Python中,每个Python文件都被视为一个模块。当模块被直接运行时,其 __name__ 属性被设置为 __main__,当模块被导入到另一个模块时,__name__ 则被设置为模块的名称。

if __name__ == ‘__main__’是一种利用这一特性来区分模块是被直接运行还是被导入的方法。这种方法允许我们定义两种行为:一种是当模块作为独立脚本运行时的行为,另一种是当模块被其他模块导入时的行为。

为什么这一概念重要?

  1. 代码重用: 使用这种方法,可以编写既可以作为独立程序运行,也可以作为模块被其他程序导入的代码。
  2. 防止代码被意外执行: 当模块被导入到另一个模块时,可能不希望某些代码立即执行。if __name__ == ‘__main__’: 提供了一种方式来阻止这种情况。

使用 if __name__ == ‘__main__’的验证

创建一个脚本(main_script.py)

当直接运行 main_script.py 时,因为 __name__ 设置为 ‘__main__‘,所以 main() 函数会被执行
print Hello World!

导入这个脚本(importing_script.py)

importing_script.py 执行时,main_script.py 被导入,但 main() 函数不会执行,因为 __name__ 不是
‘__main__’

使用main_script.main() 调用了 main_script 模块中定义的 main 函数
查看回显存在Hello World!

不使用 if __name__ == ‘__main__’的验证

此版本的 main_script.py 包含在函数外部的一个输出

当运行 importing_script.py 时,由于 main_script.py 被导入,其顶层代码(包括在 main() 函数外部的打印语句)将被立即执行print输出 函数外和Hello World,之后main_script.main() 的调用将再次执行 main() 函数,所以存在两个Hello World!

如果觉得本文对您有所帮助,可以支持下博主,一分也是缘
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇