Ordine di importazione Python, mixaggio da ... import ... e import ... (e import ... as ...)
Questo è il pasticcio di importazioni attualmente in cima al mio file:
import argparse
from copy import deepcopy
from functools import cmp_to_key, partial
from itertools import chain
import math
from multiprocessing import Pool
import os
import re
from typing import Dict, List, Set, Tuple
import xml.etree.ElementTree as ET
from third_party import Tool
Li ho organizzati in ordine alfabetico, per nome del pacchetto (?).
Penso che sembri estremamente brutto.
Quali sono i modi standard per organizzare questa sezione?
PEP8 (che ho letto) non è utile in questo caso:
Le importazioni dovrebbero essere raggruppate nel seguente ordine:
Importazioni di librerie standard.
Importazioni di terze parti correlate.
Importazioni specifiche dell'applicazione / libreria locale.
È necessario inserire una riga vuota tra ogni gruppo di importazioni.
Risposte
Le importazioni dovrebbero essere raggruppate nel seguente ordine:
Importazioni di librerie standard.
Importazioni di terze parti correlate.
Importazioni specifiche dell'applicazione / libreria locale.
È necessario inserire una riga vuota tra ogni gruppo di importazioni.python.org - pep-0008 - #imports
Pep8 cita anche la guida allo stile GNU Mailman di Barry che offre una guida all'ordine più dettagliata:
Le importazioni dovrebbero essere raggruppate, con l'ordine che è:
- importazioni non da per librerie standard e di terze parti
- importazioni non provenienti dall'applicazione
- from-imports dalle librerie standard e di terze parti
- from-imports dall'applicazione
Le importazioni provenienti dovrebbero seguire le importazioni non provenienti. Le importazioni punteggiate dovrebbero seguire le importazioni non punteggiate. Le importazioni senza punti dovrebbero essere raggruppate per lunghezza crescente, mentre le importazioni con punti dovrebbero essere raggruppate alfabeticamente.
GNU Mailman Coding Style Guide
Negli anni ho scoperto che la cosa più importante è che tutti li organizzino allo stesso modo. Perché spesso le importazioni molto organizzate sembrano caos a chi non sa già come sono organizzate.
Inizia a usare isort , ha impostazioni predefinite sane. E impostalo per l'esecuzione automatica al salvataggio sul tuo IDE o come hook pre-commit per semplificarti la vita.