python中模块对象__name__

简介: 【6月更文挑战第12天】

image.png
在Python中,每个模块都有一个内置的属性 __name__。这个属性是一个字符串,它表示模块的名字。这个属性在模块被导入到其他程序中或者作为主程序运行时会有不同的值。

1. 当模块被直接运行时

如果模块是直接被Python解释器运行的(即作为主程序),那么 __name__ 的值就会被设置为 '__main__'

例如,如果你有一个名为 my_module.py 的文件,并且你直接运行它(比如通过命令行 python my_module.py),那么在这个模块内部的 __name__ 的值就是 '__main__'

2. 当模块被导入到其他程序中时

如果模块是被其他Python程序导入的,那么 __name__ 的值就会是模块的名字(不带 .py 后缀)。

例如,如果你有一个名为 my_module.py 的文件,并且你在另一个Python文件中通过 import my_module 导入了它,那么在 my_module.py 文件内部的 __name__ 的值就是 'my_module'

使用场景

这个特性经常被用来编写既可以作为主程序运行,也可以被其他程序导入的模块。通过检查 __name__ 的值,模块可以确定自己是作为主程序运行还是被其他程序导入,从而执行不同的代码。

例如:

# my_module.py

def my_function():
    print("Function was called!")

if __name__ == '__main__':
    print("Module is being run directly")
    my_function()
else:
    print("Module has been imported into another module")

如果你直接运行 my_module.py,输出会是:

Module is being run directly
Function was called!

但是如果你从另一个Python文件中导入 my_module,输出只会是:

Module has been imported into another module
目录
相关文章
|
3天前
|
XML 数据格式 Python
Python的`import`用于加载模块,基础形式是`import module`,全量导入
【6月更文挑战第23天】Python的`import`用于加载模块,基础形式是`import module`,全量导入;`from module import name`选择性导入部分,减少命名空间污染;`from module import *`导入所有(不推荐),易引发冲突。别名导入如`from math import sqrt as square_root`可避免冲突。包导入用`.`,如`import xml.etree.ElementTree as ET`。
23 8
|
3天前
|
XML 数据格式 Python
在Python中,导入其他模块是通过使用import语句完成的
在Python中导入模块涉及`import`语句的不同用法:1) `import math`导入整个标准库;2) `from math import sqrt`导入单个函数;3) `import numpy as np`使用别名;4) `from random import *`导入所有(不推荐);5) `import xml.etree.ElementTree as ET`导入子模块;6) 使用`importlib.import_module()`延迟导入;7) `from .module import func`导入相对路径模块,需管理`sys.path`。
24 6
|
2天前
|
算法 数据安全/隐私保护 开发者
Python logger模块详细讲解
Python logger模块详细讲解
10 3
|
2天前
|
Linux Python
Python- jinja2模块详解
Python- jinja2模块详解
|
1天前
|
JSON Shell API
Python标准库中有哪些好用的模块
在命令行中使用Python标准库模块,如`http.server`、`gzip`、`base64`、`json.tool`和`calendar`,可以直接通过`python -m module_name`调用,无需额外编写代码。例如,`python -m http.server`启动一个简单的HTTP服务器,`python -m gzip -d file.gz`解压缩文件。`json.tool`用于美化显示JSON数据,而`calendar`模块则能输出日历信息。这些在临时需要相关功能时特别方便。
|
2天前
|
程序员 Python
Python--re模块的讲解与应用
Python--re模块的讲解与应用
|
2天前
|
Web App开发 JSON Linux
Python—requests模块全面讲解
Python—requests模块全面讲解
10 0
|
1月前
|
Python 人工智能 数据可视化
Python模块与包(八)
Python模块与包(八)
24 0
Python模块与包(八)
|
1月前
|
Python
python中导入模块/包的几种方式
python中导入模块/包的几种方式
30 0
|
1月前
|
Python
请描述 Python 中的模块和包的概念,以及如何导入和使用它们。
请描述 Python 中的模块和包的概念,以及如何导入和使用它们。
33 3