【小学生都能看懂的Python入门教程】第六章:模块与包——团队的力量:Python界的复仇者联盟
模块与包——团队的力量:Python界的复仇者联盟
一、模块是什么?代码界的乐高积木
1. 模块的超级英雄档案
- 身份:保存Python代码的
.py
文件 - 超能力:可以被其他程序重复召唤
- 经典台词:“Import me if you need me!”
# 召唤数学复仇者(导入标准库模块)
import math
print(math.sqrt(16)) # 4.0(美队盾牌半径计算完成)
2. 导入模块的四种姿势
导入方式 | 使用场景 | 类比说明 |
---|---|---|
import module | 常规召唤 | 呼叫整个复仇者联盟 |
from module import func | 精准召唤 | 只呼叫钢铁侠的纳米战甲 |
import module as m | 代号召唤 | 给雷神起昵称"锤哥" |
from module import * | 全体召唤(慎用) | 呼叫所有英雄可能引发混战 |
冷知识:Python解释器在导入模块时,会悄悄把代码编译成.pyc
文件,就像给英雄制作备用战衣
二、标准库:Python自带的瑞士军刀
1. 常用模块天团
模块名 | 超能力 | 经典应用场景 |
---|---|---|
datetime | 时间操控大师 | 倒计时、生日计算 |
random | 概率魔法师 | 抽奖、验证码生成 |
os | 系统管家 | 文件操作、路径管理 |
json | 数据翻译官 | API数据解析 |
re | 文字猎手 | 文本搜索与提取 |
2. 标准库技能展示
from random import choice
from datetime import datetime
# 今日幸运食物
print("今日推荐:", choice(["螺蛳粉", "披萨", "仰望星空派"]))
# 计算程序员节(第256天)
today = datetime.now()
programmer_day = datetime(today.year, 1, 1) + timedelta(days=255)
print(f"程序员节:{programmer_day:%Y-%m-%d}")
三、创建自定义模块:组建你的X战警
1. 创建超级英雄档案(模块)
# 文件:spider_man.py
def shoot_web():
print("(゜-゜)つロ 发射蜘蛛丝!")
class Villain:
def __init__(self, name):
self.name = name
print(f"{name}反派已就位!")
2. 组建英雄联盟(包结构)
marvel_team/
├── __init__.py # 联盟宣言
├── iron_man.py # 钢铁侠模块
├── captain_america.py # 美队模块
└── thanos/ # 灭霸子包
├── __init__.py
└── infinity_stones.py
3. 跨模块协同作战
# 在main.py中调用
from marvel_team.iron_man import launch_missile
from marvel_team.thanos.infinity_stones import PowerStone
launch_missile(target="外星战舰")
PowerStone().activate()
四、实战演练:天气预言家系统
使用requests模块获取天气
import requests
from pprint import pprint
def get_weather(city):
# 申请天气API密钥(实际使用需替换your_api_key)
api_key = "your_api_key"
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}"
try:
response = requests.get(url)
data = response.json()
if data["cod"] != 200:
return "天气预言被神秘力量干扰!"
weather = {
"城市": data["name"],
"温度": f"{data['main']['temp']-273.15:.1f}℃",
"天气": data["weather"][0]["description"],
"湿度": f"{data['main']['humidity']}%"
}
return weather
except Exception as e:
return f"预言失败:{str(e)}"
# 使用示例
result = get_weather("London")
pprint(result)
输出示例:
{'城市': 'London',
'温度': '15.6℃',
'天气': '阴天',
'湿度': '78%'}
五、模块冷知识档案馆
__name__
的魔法:当模块直接运行时,__name__
等于"__main__"
,就像英雄的独立电影- 缓存机制:导入过的模块会存在
sys.modules
中,避免重复加载 - 模块搜索路径:Python会按
sys.path
的顺序查找模块,就像J.A.R.V.I.S搜索战甲部件 setup.py
:打包工具,能把你的模块变成可安装的超级英雄套装
为什么需要包?
当你的英雄数量超过复联基地容量时,就需要用包来分楼层管理了
结语:从独行侠到联盟领袖
现在你已经掌握:
✅ 模块的创建与导入技巧
✅ 标准库的丰富武器库
✅ 自定义包的架构设计
✅ 第三方模块的召唤术
当你能自如调度各种模块协同作战时,就真正成为了代码世界的尼克·弗瑞。记住,优秀的模块化设计就像组建超级英雄团队——每个模块各司其职,通过清晰的接口协同工作,才能应对复杂的编程挑战。
下期预告:《安装与管理第三方包:Python界的应用商店与平行宇宙》
课后彩蛋:在自定义模块中添加以下代码:
if __name__ == "__main__":
print("(该模块正在拍摄独立电影)")
# 直接运行该文件试试看
代码学习,前言技术分享,深度分析编程技术,普及科普编程技术,天天都要敲代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)