在Python中导入模块最具蟒蛇风格的方式是什么
问题描述
有没有人能给我提个建议,用哪种方法在Python中导入模块最具蟒蛇气质? 让我解释一下-我已经阅读了大量的Python代码,并找到了如何导入模块的几种不同方法,或者更准确地说-何时导入:
- 使用一个模块/多个模块,其中包含了整个项目所需的所有导入(第三方模块),因此所有的导入集中在几个模块中,便于维护。当任何单个模块需要导入任何模块时,它会向引用模块请求它。 例如,在我们的项目中,我们分离了名为‘References’的级别,因此它包含诸如‘system.py’(包含对所有系统库的引用)、‘Platform.py’(包含对所有平台库的引用)、‘DevExpress.py’(包含对所有DevExpress库的引用)等模块。这些模块如下所示:
- 每个模块在模块的顶部导入所有必要的类和函数-例如,项目中的每个模块中都有一个包含导入的部分
- 每个函数/类在本地使用IMPORT,例如,在定义之后立即使用IMPORT,并且只导入它们真正需要的内容。
请查看下面的示例。
1个样例导入模块--仅‘IMPORT’和‘FROM...IMPORT...’语句(没有任何方法或类):
#references.py
import re
import clr
import math
import System
import System.Text.RegularExpressions
import System.Random
import System.Threading
import System.DateTime
# System assemblies
clr.AddReference("System.Core")
clr.AddReference("System.Data")
clr.AddReference("System.Drawing")
...
#test.py
from references.syslibs import (Array, DataTable, OleDbConnection, OleDbDataAdapter,
OleDbCommand, OleDbSchemaGuid)
def get_dict_from_data_table(dataTable):
pass
2个模块,带有‘IMPORT’和‘FORM...IMPORT...’以及方法和类:
from ... import ...
from ... import ...
def Generate(param, param1 ...):
pass
3带有‘IMPORT’和‘FROM...IMPORT...’的模块在方法和类中使用的语句:
import clr
clr.AddReference("assembly")
from ... import ...
...
def generate_(txt, param1, param2):
from ... import ...
from ... import ...
from ... import ...
if not cond(param1): res = "text"
if not cond(param2): name = "default"
那么,在Python中导入模块最具蟒蛇风格的方式是什么?
解决方案
它真的没关系,只要您不from ... import *
。剩下的都是品味和绕过周期性进口问题。PEP 8说明您应该在脚本的顶部导入,但即使是这样也不是一成不变的。
相关文章