目录
Python模块与包的概述
Python模块与包的概述
模块是指py脚本文件,每个脚本文件是一个模块。每个模块中可以定义属于本模块作用域的变量和函数。模块可以被其他模块引入并使用。
包是一个含__init__.py标志文件的文件夹。包是用来管理模块(py文件)的目录结构。
Python中的模块与包为Python代码管理提供了方便。
模块的引入有两种方式。
- import ...
- from ... import ...
前者是直接引入模块,后者是从某模块引入模块。
常用的还有两种形式,用as重命名,和用*表示对包的模块全部引入(不推荐)。
- import ... as ...
- from ... import *
Python模块的定义与引入
下面在工程创建一个普通文件夹atestpkg,里面分别创建两个模块t01.py和t02.py。
代码工程结构如下。
atestpkg
├─ t01.py
└─ t02.py
t01.py模块内容如下
astr="hello"
t02.py模块内容如下
import t01
print(t01.astr)
程序运行结果如下
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t02.py
hello
Process finished with exit code 0
也可以使用as给引入的模块重命名
import t01 as tvar
print(tvar.astr)
Python包的定义与引入
Python包就是在一个普通文件夹中创建一个__init__.py文件(里面可以是空的,用来区分普通文件夹和Python包。当然也可以根据需要写一些初始化代码)。
下面在atestpkg文件夹内创建mytools文件夹,然后在mytools文件夹内创建一个__init__.py空文件。
然后在mytools文件夹创建myadd.py文件(模块),并定义模块函数。
最后在atestpkg文件夹内创建t03.py文件,并编写调用mytools模块的代码。
代码工程结构如下。
atestpkg
├─ mytools
├─ __init__.py
├─ myadd.py
└─ myappend.py
├─ t01.py
├─ t01.py
└─ t03.py
myadd.py模块内容如下
def add2(x,y):
return x+y
def add3(x,y,z):
return x+y+z
myadd.py模块内容如下
alist=[1,2,3]
def funapd(n):
return alist*n
t03.py模块内容如下
from mytools import myadd,myappend
print(myadd.add2(1,2))
print(myadd.add3(1,2,3))
print(myappend.funapd(2))
程序运行结果如下
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t03.py
3
6
[1, 2, 3, 1, 2, 3]
Process finished with exit code 0
另外,包中的模块还可以通过点的方式来引入(不用from)。
import mytools.myadd as ad
from mytools import myappend as ap
print(ad.add2(1,2))
print(ad.add3(1,2,3))
print(ap.funapd(2))