模块命名规范
- 命名规则:
- 模块名应使用小写字母,单词之间用下划线连接,遵循
lowercase_with_underscores
这种风格。例如:my_module.py
。
- 避免使用Python内置关键字和系统保留字作为模块名,比如
list.py
(list
是Python内置类型)就不合适。
- 反映功能:模块名应尽量简洁且能准确反映模块的主要功能。例如,处理用户认证相关功能的模块可以命名为
user_auth.py
。
导入语句的正确书写方式
- 标准库导入:
- 首先导入Python标准库模块,按照字母顺序排列。例如:
import os
import sys
- 第三方库导入:
- 接着导入第三方库模块,同样按字母顺序排列。例如,若使用
numpy
和 pandas
:
import numpy
import pandas
- 本地应用/项目导入:
- 最后导入本地项目中的模块,按字母顺序。如果项目有包结构,应使用相对导入(适用于同一包内模块之间的导入)或绝对导入(适用于不同包或顶层模块的导入)。例如,假设项目结构如下:
my_project/
main_package/
__init__.py
module1.py
sub_package/
__init__.py
module2.py
- 在
module2.py
中导入 module1.py
可以使用相对导入:
from.. import module1
- 在项目顶层脚本导入
main_package.module1
可以使用绝对导入:
from main_package import module1
- 避免循环导入:循环导入会导致运行时错误,应通过合理的模块结构设计避免。例如,A模块导入B模块,B模块又导入A模块这种情况要避免。可以考虑将公共部分提取到一个新的模块中,供A和B模块共同使用。
通过代码格式提升模块间的可读性和可维护性
- 代码缩进:
- 使用4个空格进行缩进,不要混用制表符和空格。这使得代码块的层次结构清晰,易于阅读。例如:
def my_function():
if condition:
# 执行一些操作
result = some_calculation()
return result
- 空行:
- 在函数和类的定义之间,以及类中的方法定义之间使用两个空行分隔,增加代码的可读性。例如:
class MyClass:
def __init__(self):
self.value = 0
def method1(self):
pass
def my_function():
pass
- 注释:
- 模块级别的注释应在模块开头,简要描述模块的功能、作者、版本等信息。例如:
# 模块名:user_auth.py
# 功能:处理用户认证相关的功能,包括登录、注册等操作
# 作者:[作者姓名]
# 版本:1.0
import hashlib
def hash_password(password):
# 使用SHA - 256对密码进行哈希
hashed = hashlib.sha256(password.encode()).hexdigest()
return hashed
- 文档字符串:
- 函数和类都应使用文档字符串(docstring)来描述其功能、参数、返回值等。例如:
def add_numbers(a, b):
"""
将两个数字相加。
:param a: 第一个数字
:param b: 第二个数字
:return: 两个数字相加的结果
"""
return a + b
- 遵循PEP 8风格指南:
- 除了上述内容,遵循PEP 8的其他规范,如每行代码长度限制(一般不超过79个字符,文档字符串和注释不超过72个字符),适当使用空格来分隔运算符等,有助于保持代码风格的一致性,提升整个项目模块间的可读性和可维护性。