前面几篇文章讲解了 函数、类和变量,都是在一个 .py 文件中编写的,这个py文件就叫做模块。
一个模块可以包含 变量、函数、类或者C、C++的扩展等等
现在我定义一个 model.py 模块,里面定义变量、函数、类
文件名称叫 model.py ,模块名词就叫 model
一、模块定义:就是一个py文件(模块名.py)
model模块
模块用法:用上面 model 模块举例,新建一个模块 user_model.py
1、import model:导入模块
# user_model.py 文件,模块名称就叫 user_modelimport modelprint(model.member) # 调用 model 模块中的变量model.func() # 调用 model 模块中的函数p = model.Person() # 实例化 model 中的 Person类p.fun() # 调用 Person 类中的方法
2、from model import Person:导入单个成员
# user_model.py 文件,模块名称就叫 user_modelfrom model import memberfrom model import funcfrom model import Personprint(member) # 返回:全局变量 解读:调用 model 模块中的变量func() # 返回:一个函数 解读:调用 model 模块中的函数p = Person() # 解读:实例化 model 中的 Person类p.fun() # 返回:一个方法 解读:调用 Person 类中的方法
3、from model import *:导入所有成员
# user_model.py 文件,模块名称就叫 user_modelfrom model import *print(member) # 返回:全局变量 解读:调用 model 模块中的变量func() # 返回:一个函数 解读:调用 model 模块中的函数p = Person() # 解读:实例化 model 中的 Person类p.fun() # 返回:一个方法 解读:调用 Person 类中的方法
4、from model import Person as P: 把 Person 加上别名
# user_model.py 文件,模块名称就叫 user_modelfrom model import member as Mfrom model import func as Ffrom model import Person as Pprint(M) # 返回:全局变量 解读:调用 model 模块中的变量F() # 返回:一个函数 解读:调用 model 模块中的函数p = P() # 解读:实例化 model 中的 Person类p.fun() # 返回:一个方法 解读:调用 Person 类中的方法
5、导入多个模块(模块只导入一次,写多次也只导入一次)
# 两种方式,推荐第二种方法import sys, os # 第一种方式import sys # 第二种方式import os
二、包定义:文件夹通过 __init__.py 文件,组织模块(__init__.py 可以为空)
pkg包和web包
包用法:page 模块中调用 model 模块中的成员
1、import pkg:导入包时,只执行包内 __init__.py 文件
# pkg包 的 __init__.py文件from pkg import model
# page.py 文件,模块pageimport pkg # 如果这个__init__.py 文件为空,这样导入无法使用print(pkg.model.member) # 解读:调用 model 模块中的变量pkg.model.func() # 解读:调用 model 模块中的函数p = pkg.model.Person() # 解读:实例化 model 中的 Person类p.fun() # 解读:调用 Person 类中的方法
2、from pkg import model:导入模块
# page.py 文件,模块pagefrom pkg import modelprint(model.member) # 解读:调用 model 模块中的变量model.func() # 解读:调用 model 模块中的函数p = model.Person() # 解读:实例化 model 中的 Person类p.fun() # 解读:调用 Person 类中的方法
3、from pkg.model import Person:导入成员
# page.py 文件,模块pagefrom pkg.model import memberfrom pkg.model import funcfrom pkg.model import Personprint(member) # 解读:调用 model 模块中的变量func() # 解读:调用 model 模块中的函数p = Person() # 解读:实例化 model 中的 Person类p.fun() # 解读:调用 Person 类中的方法
4、from ... import ... as ...;所有的导入都可以加 as 别名
此处省略1000字
5、导入多个模块(模块只导入一次,写多次也只导入一次)
# 导入模块:两种方式,推荐第二种方法from pkg import model, user_model # 第一种方式from pkg import model # 第二种方式from pkg import user_model# 导入成员:两种方式,推荐第二种方法form pkg.model import member, func, Person # 第一种方式from pkg.model import member # 第二种方式from pkg.model import funcfrom pkg.model import Person