Ordre d'importation Python, mélange de… import… et import… (et import… comme…)
C'est le désordre des importations actuellement en haut de mon fichier:
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
Je les ai classés par ordre alphabétique, par nom de package (?).
Je pense que ça a l'air extrêmement moche.
Quelles sont les méthodes standard pour organiser cette section?
PEP8 (que j'ai lu) n'est pas utile dans ce cas:
Les importations doivent être regroupées dans l'ordre suivant:
Importations de bibliothèques standard.
Importations de tiers liés.
Importations spécifiques à une application / bibliothèque locale.
Vous devez mettre une ligne vide entre chaque groupe d'importations.
Réponses
Les importations doivent être regroupées dans l'ordre suivant:
Importations de bibliothèques standard.
Importations de tiers liés.
Importations spécifiques à une application / bibliothèque locale.
Vous devez mettre une ligne vide entre chaque groupe d'importations.python.org - pep-0008 - #imports
Pep8 cite également le guide de style GNU Mailman de Barry qui offre des conseils de commande plus détaillés:
Les importations doivent être groupées, l'ordre étant:
- non importées pour les bibliothèques standard et tierces
- non provenant d'importations depuis l'application
- from-importations depuis les bibliothèques standard et tierces
- depuis-importations depuis l'application
Les importations d'origine devraient suivre les importations non d'origine. Les importations en pointillé doivent suivre les importations sans point. Les importations non pointées doivent être regroupées par longueur croissante, tandis que les importations pointées doivent être groupées par ordre alphabétique.
Guide de style de codage GNU Mailman
Au fil des ans, j'ai trouvé que le plus important était que tout le monde les organise de la même manière. Parce que les importations souvent très organisées ressemblent au chaos pour ceux qui ne savent pas déjà comment elles sont organisées.
Commencez à utiliser isort , il a des valeurs par défaut saines. Et configurez-le pour qu'il s'exécute automatiquement lors de l'enregistrement sur votre IDE ou en tant que hook de pré-validation pour vous simplifier la vie.