Ordine di importazione Python

2

Sto lavorando su un grande progetto in python che ha un sacco di importazioni.

  1. Alcune importazioni sono importazioni di sistema - queste sono facili, di solito solo assolutamente importate.
  2. Alcune importazioni sono di terze parti. Questi possono avere nomi assoluti lunghi e goffi, ma chiaramente denominati singole funzioni (che richiedono istruzioni from ... import ). Infine, alcuni hanno alias canonici ( import numpy as np ).
  3. Alcune importazioni provengono dal mio pacchetto, che ha 2 livelli di gerarchia: 1 livello superiore contenente sottodirectory con codice.

Dato tutto ciò, lo schema di importazione più leggibile che potrei trovare è il seguente:

import aaa_sys
import bbb_sys

import aaa_third
from bbb_third import bb
import ccc_third as cc
import ddd_third

import .aaa_local
import .bbb_local
import ..aaa_remote.aaa_remote_module
import ..bbb_remote.bbb_remote_module

In altre parole, indipendentemente dal tipo di importazione (assoluta o aliasing o importazione selettiva), imposto alfabeticamente prima il sistema, poi le terze parti e infine le librerie dei pacchetti.

Esiste un approccio accettato dal settore in questo senso? Qualcosa simile all'ordine di importazione delle intestazioni di Google C ++.

    
posta VF1 27.01.2017 - 02:18
fonte

1 risposta

2

Non sono un esperto di python, quindi potrei mancare qualcosa, ma l'unico standard di importazione di cui sono a conoscenza è PEP8 :

Imports should be grouped in the following order:

  1. standard library imports
  2. related third party imports
  3. local application/library specific imports

You should put a blank line between each group of imports.

Alcuni strumenti come pylint ti avviseranno se il tuo codice interrompe questo suggerimento.

Sembra che questo sia più o meno quello che stai facendo già. Lo standard non dice, ma l'ordinamento alfabetico all'interno di ciascun gruppo ha senso anche per me.

    
risposta data 27.01.2017 - 02:40
fonte

Leggi altre domande sui tag