在Python中将"导入为&q;的用例

问题描述

我想知道我们是否可以使用"import as"来创建相对紧凑或可读的代码。我知道它通常基于PEP的用例,比如避免名称冲突。

以下是情况(出于演示目的,请保持非常简单)。假设我有一个模块名称,Process_words.py。

process_words.py:

def word_to_lower(word):
    return word.lower

PROCESS_TIRTHLE.py(让主脚本):

import process_words

word = "HELLO"
word_lower = process_words.word_to_lower(word)
print(word_lower)

现在这样做是好还是坏?:

import process_words as pw

word = "HELLO"
word_lower = pw.word_to_lower(word)
print(word_lower)

这是一个非常简单的例子。我有几个模块,每个模块都有几个功能。不能使用from module import something导入每个函数。对我来说,我觉得如果我将IMPORT与一些快捷名称一起使用,它将提高代码的可读性。有什么想法吗?

注意:我在这里指的是定制模块。


解决方案

通常应尽可能避免这种情况。

然而,当进口名称无处不在时,它会产生很大的影响,例如Numpy是Alwaysnp, pandas 是Alwayspd。你不应该去查名字,你坐在一个看不见的代码库前面:你看到了np.array你知道发生了什么。虽然它只稍微短了一点,但可以更容易地跳过。

另一种可能有用的情况是,在任何地方使用另一个模块的单个模块中,每隔几行或十行就是对该模块的调用。然后我会考虑使用AS导入来减小文件的大小(用于读取)。
我以前用过一个FASK应用程序做到了这一点,它是对(可测试的)模块的一个非常薄的包装。

如果它只是一个内部API(其含义从上下文中完全清楚),那么可能将其命名为pw.py而不是process_words.py是有意义的。我想这个词有点短,但是words.py可能用得很好(但是"process"这个词有点笼统,所以我可能会找一个更具体的动词...)。
上下文很重要,作为words的子模块,例如,将其命名为funcs可能是有意义的。

相关文章