关于在 python 个模块中从 .env 存储和检索路径的最佳实践

Best practices regarding paths stored and retrieved from .env in python modules

我正在使用 .env 文件来存储路径,例如输入数据路径、输出数据路径等。我正在使用库 dotenv 来检索这些路径和 config.py 脚本将这些路径转换为我的项目的正确形式。我将 config.py 导入我的其他模块,因此我的所有路径对于包中的所有模块都是相同的,如果有任何更改,我只在 .env 文件中进行一次更改。所有这些都正常工作,我这里没有问题。

我的问题是这样的:在一个模块中,我通常有几个函数。一个典型的项目涉及定义诸如 main(), run(), formatfunc(), domathfunc(), movecomplexstuffoutofthewayfunc(), exportfunc()

是不是更好

A)

import config
def main():
  paths = config.getpaths(#returns dict of paths)
  datapath = paths['DATA']
  outpath = paths['EXPORTS']
  y = 'foo'    
  x = domathfunc(y, datapath)
  formatted = formatfunc(x, y, outpath)
  return formatted

def domathfunc(y, datapath)
   z = getdatafrom(datapath)
   results = mathematics(y, z)
   return results

def formatfunc(x, y, outpath)
   pretty = prettify(x, y)
   saveit(pretty, outpath)
   return pretty

或 B)

import config
def main():
  y = 'foo'    
  x = domathfunc(y)
  formatted = formatfunc(x, y)
  return formatted

def domathfunc(y)
   paths = config.getpaths(#returns dict of paths)
   datapath = paths['DATA']
   z = getdatafrom(datapath)
   results = mathematics(y, z)
   return results

def formatfunc(x, y)
   paths = config.getpaths(#returns dict of paths)
   outpath = paths['EXPORTS']
   pretty = prettify(x, y)
   saveit(pretty, outpath)
   return pretty

在实际工作中,函数比较多,我想在项目开始的时候就决定,是每次给路径变量传参,还是每次取回?如果检索系统中的某些更改变得比减少参数数量以减少混乱更重要,那么必须更改每个功能的可能性是否有可能?

如果你能test函数就更好了,main应该是你代码中最脏的地方。

脏是指它在特定范围内应用算法并使用函数。

因此 A 更好,因为您可以在没有 运行 main.

的情况下为每个函数编写测试