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

时间:2017-09-02 20:43:55

标签: python import python-import

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

毋庸置疑如何做到这一点,但我会注意到,如果不理解, 在这些文件中,我们import utils并使用必要的函数。

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

list_dir(directory):
    return os.listdir(directory)

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

他说:

  1. 他需要在多个文件中使用此功能
  2. 为什么他会在这些文件中使用import os使代码变得丑陋(对于每一行使用外部模块,然后更多imports,那么您在顶部有{000} {000}的文件)
  3. imports 已存在于这些文件中
  4. 此外,import utils文件中已存在import os
  5. 毋庸置疑,我们都知道Python会对模块进行一次性导入,这里的问题不同:

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

1 个答案:

答案 0 :(得分:3)

  

什么叫做Pythonic?

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

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

另一个想法。如目前所写,根本不需要包装器功能。在listboxes中只需撰写utils.py即可。

另外,为什么要更改名称?坚持使用 listdir 来最大限度地降低复杂性。