python3 -m 原理分析和实现
创始人
2024-05-22 05:04:58

python module

  • module是包含python定义和语句的文件. 其文件名是模块名加后缀 .py.
  • 在module内部,通过全局变量 __name__ 可以获取模块名。
  • module可以包含可执行语句和函数定义。这些语句可用于初始化模块,且仅在import第一次遇到module name 时执行。另外,文件作为脚本运行时,也会执行这些语句。
  • 当以python module_name.py 执行模块时,解释器会把__name__ 赋值为__main__,所以可以把下面的语句添加到模块的末尾,这样就可以把这个文件即可以当作脚本,也可以当作模块
if __name__ == '__main__':...

module的搜索路径

  • 当一个名为spam模块被导入时,解释器首先搜索具有该名称的内置模块。这些模块的名字被列在sys.builtin_module_names中。如果没有找到,他就在变量sys.path给出的目录列表中搜索一个名为spam.py的文件。
  • sys.path 从以下位置初始化:
    • 输入脚本的目录
    • PYTHONPATH
    • 依赖于安装的默认值(包括site-packages目录)

dir()

  • 内置函数dir()用于查找模块定义的名称,返回结果是经过排序的字符串列表。

package

  • 包是一种用 点式模块名 构造python模块命名空间的方法。例如,模块名A.B 表示包A中名为B的子模块。
  • Python只把含有__init__.py文件的目录当成包。可以在__init__.py文件中做包的初始化代码。

__main__.py 文件是什么?

在terminal中运行一个python文件,经常是如下的:

python my_program.py

也可以先创建一个包含完整代码的目录(package)或者zip文件,在其中创建一个__main__.py文件。然后就可以通过在终端中执行 package name(目录名称),就会自动调用__main__.py文件。

python my_program_dir
python my_program.zip
python -m my_program

python -m

# python3 --help
...
-m mod : run library module as a script (terminates option list)
...

python -m module name: 把模块当作脚本来运行。

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...