Qual é a maneira mais pythônica de importar módulos em python

Alguém pode me sugerir qual é a maneira mais pythônica de importar módulos em python? Deixe-me explicar - eu li muito código Python e encontrei várias maneiras diferentes de como importar módulos ou, para ser mais preciso, quando importar:

  1. Use um módulo / vários módulos que incluem todas as importações (de terceiros módulos) que são necessários para todo o projeto, de modo que todas as importações são concentradas em poucos módulos, de modo que seja fácil manter as importações. Quando qualquer módulo requer que qualquer módulo seja importado, ele pede referências ao módulo. Por exemplo, em nosso projeto, separamos o nível denominado 'referências' para que contenha módulos como 'system.py' (contém referências para todas as bibliotecas do sistema), 'platform.py' (contém referências para todas as bibliotecas da plataforma), 'devexpress.py '(contém referências a todas as bibliotecas devexpress) e assim por diante. Esses módulos se parecem com:
  2. Cada módulo importa todas as classes e funções necessárias na parte superior do módulo - por exemplo, há uma seção com importações dentro de cada módulo no projeto
  3. Cada função / classe usa importação local, por exemplo, logo após a definição e importa apenas as coisas que realmente precisam.

Encontre exemplos abaixo.

1 módulo de importação de amostra - apenas as instruções 'import' e 'from ... import ...' (sem nenhum método ou classe):

#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 módulo com 'import' e 'from ... import ...', bem como métodos e classes :

from ... import ...
from ... import ...

def Generate(param, param1 ...):
    pass

Módulo 3 com instruções 'import' e 'from ... import ...' que são usadas dentro de métodos e classes:

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"

Então, qual é a maneira mais pythônica de importar módulos em python?

11
задан Artsiom Rudzenka 16 June 2011 в 14:16
поделиться