本文目录导读:

通用导入顺序规范
标准分组顺序
# 1. Python标准库 import os import sys from datetime import datetime # 2. 第三方库 import numpy as np import pandas as pd from flask import Flask # 3. 本地应用/库 from myapp.models import User from myapp.utils import helper from .config import settings
分组内排序规则
- 每个分组内按字母顺序排序
import X排在from X import Y之前- 相对导入排在绝对导入之后
常见语言的导入规范
Python (PEP 8)
# 标准库 import json import os import sys # 第三方库 import requests from django.shortcuts import render # 本地模块 from .models import Product from .views import product_list
JavaScript/TypeScript
// 1. 第三方库
import React from 'react';
import { useState } from 'react';
import axios from 'axios';
// 2. 内部模块
import { User } from './models/user';
import { helper } from './utils/helper';
// 3. 样式文件
import './styles/main.css';
import './App.css';
Java
// 1. 静态导入 import static java.lang.Math.PI; // 2. Java标准库 import java.util.List; import java.util.ArrayList; import java.io.IOException; // 3. 第三方库 import org.springframework.stereotype.Service; import com.google.common.collect.Lists; // 4. 本地项目 import com.mycompany.model.User;
自动化工具
Python工具
isort - 自动排序导入
# 安装 pip install isort # 使用命令行 isort your_file.py # 配置文件 .isort.cfg [settings] profile = black line_length = 88 known_standard_library = os,sys,json known_third_party = django,flask,requests known_first_party = myapp
VS Code 扩展
// settings.json
{
"python.sortImports.args": ["--profile", "black"],
"[python]": {
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}
}
JavaScript工具
ESLint + import插件
// .eslintrc.json
{
"plugins": ["import"],
"rules": {
"import/order": ["error", {
"groups": [
"builtin",
"external",
"internal",
"parent",
"sibling",
"index"
],
"newlines-between": "always",
"alphabetize": { "order": "asc" }
}]
}
}
编辑器和IDE设置
VS Code
// settings.json
{
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"editor.formatOnSave": true
}
PyCharm
- Settings → Editor → Code Style → Python → Imports
- 启用 "Optimize imports on the fly"
- 设置导入顺序规则
最佳实践
项目级规范配置
# .style.yapf (Python) [style] based_on_style = pep8 import_order = standard,third_party,first_party # .editorconfig [*.py] indent_style = space indent_size = 4 charset = utf-8 end_of_line = lf insert_final_newline = true
Hook配置(Git hooks)
// package.json
{
"husky": {
"hooks": {
"pre-commit": "isort --check-only --diff . && lint-staged"
}
},
"lint-staged": {
"*.py": ["isort", "black"]
}
}
特殊情况处理
延迟导入
# 函数内部导入 (避免循环导入)
def process_data():
from myapp.utils import process_helper
return process_helper(data)
条件导入
try:
import fast_json as json
except ImportError:
import json
if sys.platform == 'win32':
import msvcrt
else:
import fcntl
检查清单
- [ ] 标准库导入在所有其他导入之前
- [ ] 第三方库在标准库之后
- [ ] 本地应用库在最后
- [ ] 每个分组内部按字母排序
- [ ] 分组之间用空行分隔
- [ ] 没有未使用的导入
- [ ] 没有循环导入
使用这些工具和规范,可以自动保持导入顺序的正确性和一致性。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播