我想知道我们是否可以使用" unsigned long
"用于创建相对紧凑或可读的代码。我知道它基于PEP的常用用例,例如使名称冲突无效。
情况如此(为演示目的保持简单)。我们假设我有一个模块名称process_words.py。
process_words.py:
case
process_article.py(让主脚本):
65535
现在做这样的事情是不好或好的做法?:
import as
这是一个非常简单的例子。我有几个模块,每个模块都有几个功能。使用def word_to_lower(word):
return word.lower
导入每个功能不是一个选项。对我来说,感觉就像,如果我使用import作为一些快捷方式名称,它将提高代码的可读性。有什么想法吗?
注意:我在这里指的是自定义模块。
答案 0 :(得分:4)
一个实际问题是您开始更改使用的库或模块,以及在不更改代码的情况下切换实际导入的位置:import somemodule
将变为import newmodule as somemodule
。
这是我在try-except块中使用Python 2/3兼容性代码时所做的事情(我想像six
这样的包有很多这个)。例如:
try:
# Are we using Python 2?
import StringIO as io
except ImportError:
# No, we're using Python 3 instead
import io
答案 1 :(得分:2)
通常应尽可能避免这种情况。
然而,当导入名称无处不在时,它会被用来产生很好的效果,例如numpy 总是 np
,pandas 总是 pd
。您不应该查找名称,而是坐在看不见的代码库前面:您看到np.array
您知道发生了什么。虽然它只是略短,但可以更容易地跳过它。
另一个可能有用的时间是在一个模块中,在任何地方使用另一个模块,每几行或十行是这个模块的标注。然后我会考虑使用as import来减少文件的大小(用于读取) 我之前使用烧瓶应用程序做了这个,这个应用程序是一个非常薄的包装(可测试)模块。
如果它只是一个内部API(并且上下文中的含义完全清楚),那么将它命名为pw.py
而不是process_words.py
也许是有意义的。 IMO在短边方面有点偏差,但words.py
可能效果很好(但是#34;过程"有点像通用词,所以我可能会看一个更具体的动词。 )。
上下文很重要,作为words
的子模块,将其称为funcs
可能是有意义的。