模块
- 一个模块就是一个包含python代码的文件, 后缀名成是.py就可以,模块就是个python文件
1 为什么我们用模块
- 程序太大,编写维护非常不方便,需要拆分
- 模块可以增加代码重复利用的方式
- 当做命名空间使用,避免命名冲突
2 如何定义模块
- 模块就是一个普通文件,所以任何代码可以直接书写,
- 不过根据模块的规范,最好在模块中编写以下内容
- 函数(单一功能)
- 类(相似功能的组合,或者类似业务模块)
- 测试代码
3 如何使用模块
3.1 模块直接导入
-
语法1
import module_name module_name.function_name module_name.class_name
-
案例1: 在02.py中导入01.py模块,并且调用其中函数
# 01.py
class Student():
def __init__(self, name="Jay", age=25):
self.name = name
self.age = age
def say(self):
print("My name is {0}".format(self.name))
def keyboard():
print("欢迎来到一起快乐的敲键盘!")
print("我是模块p01,主人请随意调用!")
# 02.py
# 借助于importlib包可以实现导入以数字开头的模块名称
import importlib
# 相当于导入了一个叫01的模块并把导入模块赋值给了md
md = importlib.import_module("01")
stu = md.Student()
stu.keyboard()
- 案例2: 在p02.py中导入p01.py模块,并且调用其中函数
# p01.py
class Student():
def __init__(self, name="xiaohei", age=18):
self.name = name
self.age = age
def say(self):
print("My name is {0}".format(self.name))
def picture():
print("小姐姐,要拍照吗?")
# 此判断语句建议一直作为程序的入口
if __name__ == '__main__':
print("我是模块p01,主人请随意调用!")
# p02.py
import p01
# 调用类Student中的函数say
stu = p01.Student("xiaohei", 19)
stu.say()
# 调用函数picture
p01.picture()
-
语法2
import 模块 as 别名 导入的同时给模块起一个别名 其余用法跟第一种相同
-
案例3:导入模块p01中的函数say
# p03.py
import p01 as p
stu = p.Student("Jay", 25)
stu.say()
-
语法3
from module_name import func_name, class_name 按上述方法有选择性的导入 使用的时候可以直接使用导入的内容,不需要前缀
-
案例4:导入模块p01中的类和函数
# p04.py
from p01 import Student, sayHello
# 调用类Student中的函数say
stu = Student()
stu.say()
# 调用函数picture
picture()
-
语法4
from module_name import * 导入模块所有内容
-
案例5: 导入模块p01中所有内容
# p05.py
from p01 import *
# 调用函数picture
picture()
# 调用类Student中的函数say
stu = Student("Jay", 25)
stu.say()
目录
上一篇:chap1-06 内置数据结构
下一篇:chap2-02 模块的搜索路径和命名
本次笔记来自于“免费Python全系列教程全栈工程师”的学习