You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何保存自定义函数并在其他脚本中加载调用?

完全可以实现,下面是具体实现方法:

第一步:保存自定义函数

将你写好的dosomething函数完整代码存入你指定的路径/xxx/xxx/dosomething.py,替换示例中的占位逻辑即可,文件内容示例:

def dosomething(x):
    # 替换为你的实际业务逻辑
    return x * 2

第二步:在新脚本中加载调用

有两种常用的实现方式,你可以按需选择:

方式1:添加搜索路径后导入

这是Python最常规的跨模块调用方法,操作简单不易出错:

import sys
import os

# 替换为你实际的dosomething.py文件路径
file = r"/xxx/xxx/dosomething.py"
# 将函数文件所在的目录加入Python的模块搜索路径
sys.path.append(os.path.dirname(file))
# 直接导入目标函数
from dosomething import dosomething

# 按你的需求调用即可
df = data
df = df.apply(dosomething)

方式2:封装动态加载函数(符合你预期的调用写法)

如果你想要和你示例中load_function一致的调用形式,可以用importlib模块封装通用加载逻辑:

import os
import importlib.util

def load_function(path):
    # 从路径中提取文件名作为模块名
    module_name = os.path.splitext(os.path.basename(path))[0]
    # 加载模块配置
    spec = importlib.util.spec_from_file_location(module_name, path)
    # 初始化模块
    func_module = importlib.util.module_from_spec(spec)
    # 执行模块内容
    spec.loader.exec_module(func_module)
    # 返回目标函数,这里默认函数名和文件名一致,你也可以加参数自定义函数名
    return getattr(func_module, "dosomething")

# 调用逻辑和你预期的完全一致
file = r"/xxx/xxx/dosomething.py"
dosomething = load_function(path=file)

df = data
df = df.apply(dosomething)

注意事项

  • 保存函数的.py文件如果有测试逻辑,一定要写到if __name__ == "__main__":代码块中,否则加载函数时测试逻辑会自动执行
  • 如果你需要高频使用这个函数,可以把/xxx/xxx/这个目录加入系统的PYTHONPATH环境变量,之后就不需要每次都加sys.path或者用动态加载逻辑,直接from dosomething import dosomething即可
  • 路径填写时注意转义问题,Windows系统下的路径建议加r前缀避免反斜杠转义报错

内容的提问来源于stack exchange,提问作者fred.schwartz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:27:01