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)
他说:
import os在这些文件中使代码变得丑陋(然后imports对于外部模块的每一行使用更多,然后imports在文件顶部有数千个)import utils 已经存在于那些文件中。import os 已经存在于utils.py文件中。不用说,我们都知道 Python 对模块做了一次性导入,这里的问题是不同的:
什么更叫 Pythonic ?当有一行(可能是两行)函数时,只需将模块导入需要该函数的文件中(虽然看起来代码变得丑陋),或者将其写入utils.py. ?
什么更叫 Pythonic?
通常的做法是只在需要的地方导入模块。这意味着在使用它的每个模块中编写“import os”。
我能想到的有正当理由。如果将来您需要更改list_dir() 的功能(可能会过滤掉某些类别的文件),那么让所有用户都引用相同的源是很好的。
另一种想法。正如目前所写,根本不需要包装函数。在utils.py刚刚写from os import listdir as list_dir。
另外,为什么要更改名称?通过坚持使用listdir 来最小化复杂性。
| 归档时间: |
|
| 查看次数: |
5663 次 |
| 最近记录: |