DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

1. 运行环境

  • Python3.9.6

2. __name__

__name__属于Python中的内置类属性,代表对应程序名称。如果当前运行的程序是主程序,此时__name__的值就是__main__,反之,则是对应的模块名。以一个例子来说明:

创建first_module.py文件,文件内容及运行first_module.py文件的结果如下所示:

print("first_module's __name__:", __name__)

# 运行结果
# first_module's __name__: __main__

接着,创建second_module.py文件,在该文件中导入first_module.py文件,文件内容及运行second_module.py文件的结果如下所示:

import first_module

# 运行结果
# first_module's __name__: first_module

如上所示:

  1. 当运行first_module.py文件时,此时__name__的值为__main__,即代表主程序。而当运行second_module.py是,此时打印出的__name__为first_module,即对应module的name。

3. 使用场景

多用于模块自身的调试。比如,修改first_module.py文件,增加函数first_module_func,然后运行first_module.py文件,此时的运行结果如下,可以看到此时由于__name__的取值为__main__,所以会运行if语句中调用的函数的内容。

print("first_module's __name__:", __name__)

def first_module_func(a, b):
    print("a+b=", a+b)

if __name__ == '__main__':
    first_module_func(1, 2)

# 运行结果
# first_module's __name__: __main__
# a+b= 3

接着,运行second_module.py文件,文件内容和运行结果如下,即由于此时的first_module.py文件中__name__不等于__main__,所以不会执行first_module_func函数。

import first_module

# 运行结果
# first_module's __name__: first_module

因此,当我们在调试first_module.py文件中的一些函数时,可以通过这种方式来运行需要调试的函数,比如上面定义的first_module_func函数。此时调试通过之后也不需要删除调试的代码,其他模块引用时不会执行调试代码,从而输出一些无用信息。

 
posted on   DoubleLi  阅读(179)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2022-01-11 图解正向代理、反向代理、透明代理
2022-01-11 如何利用MobaX同时处理多台虚拟机输入相同命令
2022-01-11 linux ssh执行命令_在Linux上通过SSH在多个节点上并行执行命令的三种方法
2022-01-11 Window、Linux查看本机外网ip
2021-01-11 mysql 5.7 安装 (压缩包方式 .tar.gz)
2019-01-11 C/C++程序CPU问题分析
2012-01-11 List<T>.Contains(T item)判断是否包含的根据是什么
点击右上角即可分享
微信分享提示