可能重复:
Python中的好或坏做法:在文件中间导入
我已经习惯了Java这样的语言,它要求所有import语句都出现在类/文件的顶部.
哪个被认为是更加pythonic /"美丽" - 将它们全部放在顶部,或根据需要,因为它们是需要的?
这取决于.
大多数时候你想要它在顶部.这不是因为PEP-8(任何引用PEP-8作为理由并且本身误解设计原理的人),但是出于PEP-8建议的实际原因:
如果将导入放在函数中,并且这些导入不可用,则可能会隐藏问题.在导入模块时,不会抛出异常,而只会在调用某个函数时发生.它的效率也有点低,按需提取名称,尽管这通常很小.
但是,这不是一个严格的规定.您可能希望使用某些类型的功能检测按需导入.例如,
def decode(s):
try:
import cjson
return cjson.decode(s)
except ImportError:
import simplejson
return simplejson.loads(s)
print decode('[1,2,3]')
Run Code Online (Sandbox Code Playgroud)
或类似地,
try:
import cjson
def decode(s):
return cjson.decode(s)
except ImportError:
import simplejson
def decode(s):
return simplejson.loads(s)
print decode('[1,2,3]')
Run Code Online (Sandbox Code Playgroud)
您可能还特别希望仅在模块可用时才支持某些方法调用,而不会导致整个模块依赖它.
| 归档时间: |
|
| 查看次数: |
1521 次 |
| 最近记录: |