python模块与import语句
为什么要提出“模块”的概念
我们可以在python解释器中编程,但是,如果我们从python解释器退出再进入,那么之前定义的所有方法和变量就都消失了。
为此,python提供了一个办法,把这些定义存放在文件中,这个文件被称为模块。
什么是模块
模块是一个包含所有我们定义的函数和变量的文件,其后缀名是.py
模块有什么作用
模块可以被别的程序引入,以使用该模块中的函数等功能
如何引入.py模块
import语句
想使用python源文件,只需要在另一个源文件里执行import
语句。语法如下:
- 导入一个模块
import module1
- 导入多个模块
import module1, module2, ... moduleN
from...import 语句
从模块中导入某一指定部分(如函数、变量)到命名空间中。语法如下:from moudle import item
注意:item可以是变量或函数
from...import * 语句
将一个模块的全部内容导入到命名空间中。易导致程序可读性不高,不推荐过多使用。语法如下:import module import *
包
包是一种管理python模块的形式,类似路径。
层级结构为:包-(子包)-模块
使用模块,采用“点模块名称”形式。
语法如下:
A.B #这表示一个包A中的子模块B: A/B.py
A.B.C #这表示包A中的子包B的模块C: A/B/C.py
注意:除了C都必须是包,C可以是包或模块,但不可以是类、函数或变量!
模块内置属性:__name__属性
__name__
是每一个模块的内置属性,指示模块应该如何被加载:
如果模块是被导入,其值是模块名字;如果模块是直接执行,其值是__main__
程序入口
学过其他编程语言的都知道,程序都需要一个入口。像C、C++都需要一个main函数作为程序的入口;Java等则需要一个包含main方法的主类来作为程序入口。
但是python是没有统一的程序入口的。因为python是脚本语言,每次运行都是从脚本的第一行开始运行,没有统一的入口。
参考:https://blog.konghy.cn/2017/0...
结合__name__
属性的作用,if __name__==__main__:
的含义与作用如下:
- 只有当前模块自身运行时,if语句体才会被执行;
- 由于一个模块被另一个程序第一次引入时,其主程序将全部运行。添加这样的if语句后,就实现了在该模块被引入时,模块中某一程序块不执行,而只有该模块自身运行时执行的目的
- 相当于python模拟的程序入口
常用模块:python标准模块
sys.py模块
查看python版本
import sys
sys.version
查看python模块搜索路径的列表
import sys
sys.path
修改命令提示符
import sys
sys.ps1 #查看主提示符
sys.ps2 #查看副提示符
sys.ps1 = 'in:' # 修改提示符
小结
- 导入模块的方法:import语句、from...import语句以及使用包导入模块
-
import A.B.C
,除了C,A和B都必须是包,C只能是包或模块,不能是函数或变量。因此,import
的只能是模块或包,要想导入函数或者变量,只能使用from ... import item
语句 - 模块内置属性
__name__
, 指示了模块加载的方式,可以用来使得“在引入模块时模块中某一段程序不被执行,而只在模块自身执行时被执行”
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。