【发布时间】:2021-06-28 11:44:56
【问题描述】:
假设我编写了一个用于数据分析的 Python 脚本,其中包含一个函数 parse_csv,它可能会以某种格式返回一个数据帧。然后我可以分析和绘制这个输出等等。
一段时间后,在处理相同格式的不同数据时,我决定最好以不同的方式解析 csv,因此我改进了函数,使其返回稍微不同的输出以绘制等。方式略有不同。例如。一个数据框,现在包含列的日期时间对象,而不仅仅是日期和时间作为字符串。
我仍然希望所有原始脚本都能运行。我希望新旧脚本的所有功能都在项目的一个 python 库中。我不想返回并更改旧脚本的所有代码以使用新的和改进的功能。
对我的函数进行版本控制的最佳方式是什么?我能想到几个选项,但我想知道是否遗漏了什么:
- 有没有办法在 python 中对库进行版本控制?例如“导入 myLib 0.1 版”。然后我可以为不同的脚本导入不同版本的库
- 我将函数称为不同的事物,例如
parse_csv_1,parse_csv_2 - 我有一个函数参数可以重定向到函数内部的不同函数,例如:
def parse_csv(csv, version=1):
if version == 1:
return parse_csv_1(csv)
elif version == 2:
return parse_csv_2(csv)
有没有办法使用第一个选项来实现我想要的,因为它对我来说看起来更干净,并且可以用于跨脚本改进多个功能?还是我需要以其他方式执行此操作?
我见过this question 指的是导入特定版本的库,但我无法看到如何同时安装多个版本。
【问题讨论】:
标签: python function versioning