Thứ tự nhập Python, trộn từ… nhập… và nhập… (và nhập… dưới dạng…)
Đây là mớ hỗn độn của quá trình nhập hiện ở đầu tệp của tôi:
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
Tôi sắp xếp chúng theo thứ tự bảng chữ cái, theo tên gói (?).
Tôi nghĩ nó trông cực kỳ xấu xí.
Các cách tiêu chuẩn để tổ chức phần này là gì?
PEP8 (mà tôi đã đọc) không hữu ích trong trường hợp này:
Hàng nhập khẩu phải được nhóm theo thứ tự sau:
Nhập thư viện tiêu chuẩn.
Nhập khẩu của bên thứ ba có liên quan.
Nhập ứng dụng / thư viện cục bộ cụ thể.
Bạn nên đặt một dòng trống giữa mỗi nhóm nhập khẩu.
Trả lời
Hàng nhập khẩu phải được nhóm theo thứ tự sau:
Nhập thư viện tiêu chuẩn.
Nhập khẩu của bên thứ ba có liên quan.
Nhập ứng dụng / thư viện cục bộ cụ thể.
Bạn nên đặt một dòng trống giữa mỗi nhóm nhập khẩu.python.org - pep-0008 - #imports
Pep8 cũng trích dẫn hướng dẫn kiểu GNU Mailman của Barry, hướng dẫn đặt hàng chi tiết hơn:
Hàng nhập khẩu phải được nhóm lại, với thứ tự là:
- không phải từ nhập khẩu cho thư viện tiêu chuẩn và bên thứ ba
- không phải từ nhập khẩu từ ứng dụng
- from-import từ thư viện chuẩn và bên thứ ba
- from-import from the application
Nhập khẩu từ hàng hóa nên theo sau không phải từ nhập khẩu. Nhập khẩu chấm phải theo nhập khẩu không chấm. Các mục nhập không có dấu chấm phải được nhóm theo chiều dài tăng dần, trong khi nhập có dấu chấm nên được nhóm theo bảng chữ cái.
Hướng dẫn kiểu viết mã GNU Mailman
Trong nhiều năm, tôi nhận thấy điều quan trọng nhất là khiến mọi người tổ chức những điều này theo cùng một cách. Bởi vì những lần nhập hàng rất có tổ chức trông giống như hỗn loạn đối với những người không biết chúng được tổ chức như thế nào.
Bắt đầu sử dụng isort , nó có các mặc định lành mạnh. Và thiết lập nó để tự động chạy khi lưu trên IDE của bạn hoặc dưới dạng móc cam kết trước để làm cho cuộc sống của bạn dễ dàng hơn.