Python入门Day18:模块与包(module package)
学习目标:
- 理解模块(module)和包(package)的区别和联系
- 学会使用import语句导入模块
- 掌握自定义模块,创建包的方式
- 能使用__init__.py,__name__控制模块行为
- 学会使用标准库与第三方库(如math,random,os,sys)
一、什么是模块(module)
定义:
一个模块就是一个.py文件,包含了可复用的函数,变量,类等
# 文件名:greeting.pydef say_hello(name):print(f"Hello, {name}!")
导入模块的几种方式
import greeting
greeting.say_hello("Alice")
from greeting import say_hello
say_hello("Alice")
from greeting import * # 不推荐,会引入所有内容
二、标准库模块(内置)
Python自带了大量实用模块,无需安装,直接导入即可:
模块化 | 作用 |
math | 数学运算 |
random | 随机数生成 |
os | 系统操作(如路径,环境变量) |
sys | 解释器相关 |
datetime | 时间与日期 |
示例1:使用math模块
import mathprint(math.sqrt(16)) #4.0
print(math.pi) #3.141592....
示例2:使用random模块
import randomprint(random.randint(1,10)) #随机整数
print(random.choice(["A","B","C"])) #随机选一个元素
三、自定义模块
示例
1.创建一个文件utils.py
def add(a,b)return a+b
2.在另一个脚本中导入使用:
import utilsprint(utils.add(3,4)) # 输出 7
模块名就是.py文件名(不要加.py)
四、什么是包(package)
定义:
包就是一个包含多个模块的文件夹,并且该文件夹内有一个__init__.py文件
结构示例:
my_project/
├── my_package/
│ ├── __init__.py
│ ├── module1.py
│ └── module2.py
使用包中的模块:
from my_package import module1
module1.函数名()
或
from my_package.module2 import 函数名
五、特殊变量:__name__
用于判断模块是否被“直接运行”或“被导入使用”
# file: sample.py
print(__name__) # 运行此文件时是"__main__",被导入时是模块名
常用结构:
def main():print("This is main logic")if __name__ == "__main__"main()
六、第三方模块与pip使用(了解)
安装新模块:
pip install requests
导入使用:
import requests
response = requests.get("https://api.github.com")
print(response.status_code)
小结:模块vs包
项目 | 模块(module) | 包(package) |
本质 | .py文件 | 文件夹+模块+__init__.py |
用于 | 组织函数/类 | 组织多个模块 |
导入方式 | import xxx | from 包 import 模块 |
练习题:
1.自己新建一个模块 math_tools.py
,写一个函数 square(n)
求平方,然后导入使用;
2.创建一个包 calc_pkg/
,其中两个模块分别实现加法和乘法;
3.使用 random
模块生成 5 个 1~100 的随机整数;
4.写一个模块 greet.py
,加入 __name__ == "__main__"
判断逻辑;
5.使用 os
和 sys
模块打印当前路径和 Python 版本。