百木园-与人分享,
就是让自己快乐。

Python __name__ == ‘__main__’详细解释-Python零基础入门教程

目录

  • 一.简介
    • 1.__name__
    • 2.’__main__’
    • 3.__name__ == ‘__main__‘
  • 二.作用
  • 三.猜你喜欢

​ 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

学习过 C 语言或者 Java 语言的盆友应该都知道程序运行必然有主程序入口 main 函数,而 Python 却不同,即便没有主程序入口,程序一样可以自上而下对代码块依次运行,然后 Python 不少开源项目或者模块中依然存在 __name__ == “__main__” 这种写法,具体是上面意思呢?

一.简介

1.__name__

** __name__** 是 Python 的内置属性,是系统全局变量!每一个 py 文件都有一个属于自己的__name__:

** 如果 py 文件作为模块被导入(import),那么 __name__ 就是该 py 文件的文件名(也称 模块名);**

** 如果 py 文件直接运行时(Ctrl+Shift+F10),那么 __name__ 默认等于字符串”__main__”;**

举个简单的例子:假如你名字是张三

在朋友眼中,你是张三(__name__ == \'张三\');

在你自己眼中,你是你自己(__name__ == \'__main__\')

2.’__main__’

‘_ _main_ _’ 实际上就是一个字符串,用来鉴别程序入口,没有太多花里胡哨的东西.

3.__name__ == ‘__main__‘****

当 .py 文件被直接运行 (Ctrl+Shift+F10) 时,** if __name__ == ‘__main__’ 之下的代码块将被运行,该语句就相当与 Python 的 main 主函数入口**,示例代码如下:

a.新建一个 my_name.py 文件,作为模块文件:

# !usr/bin/env python
# -*- coding:utf-8 _*-
\"\"\"
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python __name__ == ‘__main__’.py
@Time:2021/04/24 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

\"\"\"

# 定义一个函数并打印 __name__
def prit_name():
print(\"my_name.py __name__:\", __name__)

if __name__ == \"__main__\":
prit_name()

b.新建一个 python_main.py 文件,作为启动文件 (Ctrl+Shift+F10):

# !usr/bin/env python
# -*- coding:utf-8 _*-
\"\"\"
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python __name__ == ‘__main__’.py
@Time:2021/04/24 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

\"\"\"

# 导入 my_name 模块
import my_name

# 定义一个函数并打印 __name__
def prit_name():
my_name.prit_name()
print(\"python_main.py __name__:\", __name__)

if __name__ == \"__main__\":
prit_name()

\'\'\'
输出结果:

my_name.py __name__: my_name
python_main.py __name__: __main__

\'\'\'

**由此可见,作为启动文件 python_main.py ,该文件的内置属性 __name** 等于 ‘__main__’,而 my_name.py 作为导入模块,该模块的 __name** 等于文件名(也称模块名字),所以 my_name.py 中的 表达式 if __name__ == ‘__main__’ 并不成立!**

当直接将 my_name.py 作为启动文件时 (Ctrl+Shift+F10),输出:

my_name.py __name__: __main__

总结

如果 py 文件作为模块被导入(import),那么 __name__ 就是该 py 文件的文件名(也称 模块名);

如果 py 文件直接运行时(Ctrl+Shift+F10),那么 __name__ 默认等于字符串 ‘__main__‘** ;**

二.作用

1.__name__ == ‘__main__‘ 作为启动 py 文件的 main 函数入口;

2.一个项目中必然会包含多个模块文件,每个模块文件在自己写完代码之后会做一些简单的测试用于检测 bug 或者 对自己的函数调用写一个简单的示例,而恰到好处的是:__name__ == ‘__main__‘ 既不会影响你的测试代码,也不会影响别人调用你的接口函数;

三.猜你喜欢

  • Python for 循环
  • Python 字符串
  • Python 列表 list
  • Python 元组 tuple
  • Python 字典 dict
  • Python 条件推导式
  • Python 列表推导式
  • Python 字典推导式
  • Python 函数声明和调用
  • Python 不定长参数 *argc/**kargcs
  • Python 匿名函数 lambda
  • Python return 逻辑判断表达式
  • Python 字符串/列表/元组/字典之间的相互转换
  • Python 局部变量和全局变量
  • Python type 函数和 isinstance 函数区别
  • Python is 和 == 区别
  • Python 可变数据类型和不可变数据类型
  • Python 浅拷贝和深拷贝
  • 未经允许不得转载:猿说编程 » Python __name__ == ‘__main__’详细解释

    本文由博客 - 猿说编程 猿说编程 发布!

    来源:https://www.cnblogs.com/shuopython/p/14873860.html
    图文来源于网络,如有侵权请联系删除。

    未经允许不得转载:百木园 » Python __name__ == ‘__main__’详细解释-Python零基础入门教程

    相关推荐

    • 暂无文章