在一个 Python 脚本中导入另一个脚本的功能

假设你有两个简单的 Python 脚本,一个叫 script1.py,另一个叫 script2.py,你想在 script2.py 里使用 script1.py 中定义的函数或变量。下面是一个简单易懂的教程,教你如何实现。


教程:在一个 Python 脚本中导入另一个脚本的功能

1. 基础概念:模块和导入

在 Python 中,每个 .py 文件都可以被视为一个模块 。你可以使用 import 语句在一个模块中使用另一个模块中定义的函数、类或变量。

2. 准备第一个脚本(提供功能的脚本)

假设你的 script1.py 里有一个函数,用来打招呼:

python 复制代码
# script1.py
def greet(name):
    print(f"你好,{name}!")

如果 script1.py 里还有测试代码(比如直接调用函数),我们通常用 if __name__ == '__main__': 来保护,这样导入时就不会自动运行测试代码:

python 复制代码
# script1.py
def greet(name):
    print(f"你好,{name}!")

# 下面的代码只会在直接运行 script1.py 时执行,被导入时不会执行
if __name__ == '__main__':
    greet("小明")

3. 编写第二个脚本(使用功能的脚本)

现在在 script2.py 中导入 script1 并使用它的 greet 函数:

python 复制代码
# script2.py
import script1   # 导入 script1 模块

# 调用 script1 中的函数
script1.greet("小红")

或者,你可以只导入需要的函数:

python 复制代码
# script2.py
from script1 import greet

greet("小红")

4. 运行脚本

确保 script1.pyscript2.py同一个文件夹 下。然后运行 script2.py

bash 复制代码
python script2.py

输出:

复制代码
你好,小红!

5. 注意事项

  • 文件位置 :两个脚本必须在同一个目录,或者 script1.py 所在的目录已被添加到 Python 的搜索路径中(一般情况下当前目录会自动包含)。
  • 避免自动执行 :如果 script1.py 中有直接运行的代码(如不在 if __name__ == '__main__': 中的打印或函数调用),导入时这些代码也会执行,可能导致意外输出。所以通常把供别人使用的功能放在函数或类中,测试代码放在 if __name__ == '__main__': 里。
  • 模块名命名:模块名(即文件名)应遵循 Python 命名规则(字母、数字、下划线,不能以数字开头),避免与 Python 内置模块重名。

6. 更多导入方式

  • 给模块起别名:import script1 as s,然后使用 s.greet("小红")
  • 导入多个函数:from script1 import greet, other_function
  • 导入所有内容(不推荐,容易引起命名冲突):from script1 import *

通过这种方式,你可以轻松地在多个脚本之间共享代码,让程序结构更清晰、更易于维护。

相关推荐
Escalating_xu10 分钟前
C++可变参数模板与引用折叠精讲
开发语言·c++
灵机一物13 分钟前
企业选型参考:2026 CXL 内存扩展方案六强测评与落地指南
服务器·网络·数据库·人工智能
Web极客码13 分钟前
如何用三段式确定性剪枝,为 LLM Agent 砍掉 35% 的 Token 成本?
服务器·人工智能·算法·机器学习
wuyk55515 分钟前
59.嵌入式C语言高级宏定义实战:多行宏、字符串化与符号拼接
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网·51单片机
云泽80821 分钟前
Visual Studio 2026 新手保姆级教程:环境搭建、界面优化与编译器配置详解
开发语言·c++·c·开发工具·visual studio
yeflx28 分钟前
速腾Airy雷达使用记录
java·服务器·网络
2zcode1 小时前
基于MATLAB深度学习的乳腺钼靶影像乳腺癌智能诊断系统设计与实现
开发语言·深度学习·matlab·乳腺癌
MoonBit月兔1 小时前
错过大赛报名?MoonBit 开源大赛- 8 月黑客松正式开启
开发语言·ai-native·moonbit
公众号:fuwuqiBMC1 小时前
(转自“服务器BMC”)服务器BMC芯片——多Die(芯片)封装
运维·服务器·人工智能
小猴子爱上树1 小时前
一站式解决图片视频翻译难题的高效AI工具
人工智能·python·音视频