在我们的项目中,有一个utils.py
文件,提供多个文件(DRY)的功能。
毋庸置疑如何做到这一点,但我会注意到,如果不理解,
在这些文件中,我们import utils
并使用必要的函数。
在开发过程中,我们的一位开发人员上传了一个PR,他在其中添加了几个函数到utils.py
文件,这是其中之一:
list_dir(directory):
return os.listdir(directory)
当我们问他为什么写这个函数时(只需import os
在你需要的文件中,并使用os.listdir
)
import os
使代码变得丑陋(对于每一行使用外部模块,然后更多imports
,那么您在顶部有{000} {000}的文件)imports
已存在于这些文件中。import utils
文件中已存在import os
。毋庸置疑,我们都知道Python会对模块进行一次性导入,这里的问题不同:
什么叫做Pythonic?当存在一行(可能是两个)函数时,只需将模块导入需要该函数的文件中(虽然看起来代码变得丑陋),或者将其写入utils.py
。 ?
答案 0 :(得分:3)
什么叫做Pythonic?
通常的做法是在您需要的地方导入模块。这意味着在使用它的每个模块中编写“import os”。
我能想到的正当理由。如果将来您需要更改 list_dir()所做的事情(可能过滤掉某些类别的文件),那么让所有用户引用相同的源代码会很好。
另一个想法。如目前所写,根本不需要包装器功能。在listboxes
中只需撰写utils.py
即可。
另外,为什么要更改名称?坚持使用 listdir 来最大限度地降低复杂性。