在Python中导入模块最具蟒蛇风格的方式是什么 [英] What is the most pythonic way to import modules in python

查看:19
本文介绍了在Python中导入模块最具蟒蛇风格的方式是什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有人能给我提个建议,用哪种方法在Python中导入模块最具蟒蛇气质? 让我解释一下-我已经阅读了大量的Python代码,并找到了如何导入模块的几种不同方法,或者更准确地说-何时导入:

  1. 使用一个模块/多个模块,其中包含了整个项目所需的所有导入(第三方模块),因此所有的导入集中在几个模块中,便于维护。当任何单个模块需要导入任何模块时,它会向引用模块请求它。 例如,在我们的项目中,我们分离了名为‘References’的级别,因此它包含诸如‘system.py’(包含对所有系统库的引用)、‘Platform.py’(包含对所有平台库的引用)、‘DevExpress.py’(包含对所有DevExpress库的引用)等模块。这些模块如下所示:
  2. 每个模块在模块的顶部导入所有必要的类和函数-例如,项目中的每个模块中都有一个包含导入的部分
  3. 每个函数/类在本地使用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说明您应该在脚本的顶部导入,但即使是这样也不是一成不变的。

这篇关于在Python中导入模块最具蟒蛇风格的方式是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆