有人能向我建议在Python中导入模块的最佳方式吗?让我解释一下 - 我已经阅读了很多Python代码,并发现了几种不同的导入模块的方式,更确切地说是何时导入:
- 使用一个或多个包含整个项目所需的所有导入(第三方模块)的模块,因此所有导入都集中在少数模块中,易于维护。当任何单个模块需要导入任何模块时,它会向引用模块请求该模块。例如,在我们的项目中,我们有一个名为“references”的级别,因此它包含像“system.py”(包含对所有系统库的引用)、“platform.py”(包含对所有平台库的引用)、“devexpress.py”(包含对所有DevExpress库的引用)等模块。这些模块看起来像:
- 每个模块在顶部导入所有必要的类和函数 - 例如,项目中每个模块都有一个带有导入的部分。
- 每个函数/类在定义之后紧接着使用本地导入,例如仅导入它们真正需要的东西。
请参见以下示例。
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
使用'import'和'from ... import ...'导入2个模块,以及方法和类:
from ... import ...
from ... import ...
def Generate(param, param1 ...):
pass
使用“import”和“from ... import ...”语句的3个模块,它们被用在方法和类中:
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中,最符合Python风格的导入模块方式是什么?