Python 导入、utils 文件以及如何组合它们

Spa*_*zaM 0 python import python-import

在我们的项目中,有一个utils.py文件为多个文件(DRY)提供了功能。

不用说这是如何完成的,但我会注意以防万一不明白,在这些文件中我们import utils使用必要的功能。

在开发过程中,我们的一位开发人员上传了一个 PR,他在utils.py文件中添加了多项功能,这是其中之一:

list_dir(directory):
    return os.listdir(directory)
Run Code Online (Sandbox Code Playgroud)

当我们问他为什么写这个函数时(只是import os在你需要的文件中,并使用os.listdir

他说:

  1. 他在几个文件中需要这个功能
  2. 为什么他会import os在这些文件中使代码变得丑陋(然后imports对于外部模块的每一行使用更多,然后imports在文件顶部有数千个)
  3. import utils 已经存在于那些文件中
  4. 而且,import os 已经存在于utils.py文件中

不用说,我们都知道 Python 对模块做了一次性导入,这里的问题是不同的:

什么更叫 Pythonic ?当有一行(可能是两行)函数时,只需将模块导入需要该函数的文件中(虽然看起来代码变得丑陋),或者将其写入utils.py. ?

Ray*_*ger 6

什么更叫 Pythonic?

通常的做法是只在需要的地方导入模块。这意味着在使用它的每个模块中编写“import os”。

我能想到的有正当理由。如果将来您需要更改list_dir() 的功能(可能会过滤掉某些类别的文件),那么让所有用户都引用相同的源是很好的。

另一种想法。正如目前所写,根本不需要包装函数。在utils.py刚刚写from os import listdir as list_dir

另外,为什么要更改名称?通过坚持使用listdir 来最小化复杂性。