当前位置:首页>python>Python 第10天:模块与 import,把工具拆成独立文件

Python 第10天:模块与 import,把工具拆成独立文件

  • 2026-09-21 08:32:49
Python 第10天:模块与 import,把工具拆成独立文件

函数越来越多时,把所有代码放在一个文件里会变得难找、难改。真实 Agent 通常把不同工具拆到不同模块,再由主程序统一调用。

今天学习模块与 import:让多个 Python 文件分工合作。

今天完成 4 件事

1|理解模块与文件关系

2|掌握两种 import 写法

3|使用点号调用工具

4|完成双文件 Agent 项目

一、什么是模块?

一个扩展名为 .py 的 Python 文件,就是一个模块。新建文件夹 day10_agent,在里面创建:

day10_agent/
├─ tool_box.py
└─ main.py

tool_box.py 保存工具函数,main.py 负责接收任务和调用工具。两个文件放在同一文件夹,初学阶段最容易导入。

二、在工具模块中定义函数

在 tool_box.py 中写入:

def format_task(task):
    return f"待处理任务:{task}"


def add(a, b):
    return a + b

直接运行这个文件不会输出内容,因为这里只有函数定义,没有函数调用。Python 会记录两个函数,但函数体都还没有执行。

三、用 import 导入整个模块

在 main.py 中写入:

import tool_box

message = tool_box.format_task("整理 Python 笔记")
total = tool_box.add(12, 8)

print(message)
print(total)

import tool_box 会找到同一文件夹里的 tool_box.py,并建立模块名称 tool_box。调用函数时写 tool_box.format_task()。

点号左边是模块对象,右边是模块里的函数属性。format_task 是我们定义的函数名,不能写成不存在的 format_tasks,否则会触发 AttributeError。

四、用 from ... import 导入指定函数
from tool_box import add

total = add(5, 7)
print(total)

这种写法把 add 直接放进当前文件,因此调用时不写 tool_box.。它更短,但当不同模块有同名函数时,不容易看出函数来自哪里。

零基础阶段推荐先用 import tool_box,让来源保持清楚。

五、导入标准库模块

Python 自带许多标准库,不需要另外安装。例如:

import random

tools = ["搜索", "计算器", "文件读取"]
selected = random.choice(tools)
print(f"随机选择的工具:{selected}")

random 是模块,choice() 是模块中的函数,tools 是实际参数。列表非空时,它会随机返回一个元素。

不要把自己的文件命名为 random.py,否则 import random 可能先导入你自己的文件,导致真正的标准库功能找不到。

六、完成一个双文件 Agent 项目

tool_box.py:

def search_tool(keyword):
    return f"搜索工具收到关键词:{keyword}"


def calculator_tool(a, b):
    return f"计算结果:{a + b}"

main.py:

import tool_box

task_type = input("请选择工具:搜索或计算器:")

if task_type == "搜索":
    keyword = input("请输入关键词:")
    result = tool_box.search_tool(keyword)
elif task_type == "计算器":
    a = int(input("请输入第一个整数:"))
    b = int(input("请输入第二个整数:"))
    result = tool_box.calculator_tool(a, b)
else:
    result = "没有找到对应工具"

print(result)

在 day10_agent 文件夹中运行:

python main.py

主程序只选择工具,具体执行代码放在 tool_box.py。这就是最小的多文件 Agent 结构。

七、四个常见错误

1.tool_box.py 与 main.py 不在同一目录,触发 ModuleNotFoundError;

2. 文件名大小写或拼写不一致;

3. 模块存在,但点号后的函数名写错,触发 AttributeError;

4. 自己的文件名覆盖标准库模块,例如 random.py、json.py。

还要分清:import tool_box 是导入语句,tool_box.search_tool() 才是函数调用。

八、今天的小练习

新建 text_tools.py,定义 count_words(text),返回字符串长度;再在 main.py 中导入模块并调用两次。

分别测试空字符串和“Python Agent”,记录函数体执行次数和每次实参是什么。

今日总结

• 一个 .py 文件就是一个模块;

• import 模块名 会建立模块对象;

• 模块名.函数名() 可以明确工具来源;

• from 模块 import 函数 可以直接导入指定函数;

• 多文件结构让 Agent 的主流程与工具实现分离。

下一篇,我们学习异常处理 try / except:当输入错误或工具失败时,让 Agent 给出提示,而不是直接崩溃。

完成练习后,欢迎留言:第 10 天完成。

最新文章

随机文章