你想获取类变量和实例变量命名规范的具体可落地示例,核心遵循 Python PEP 8 规范,两类变量因用途和归属不同,命名风格有明确区分,下面通过「场景分类 + 正面示例 + 反面示例 + 完整代码」的形式详细呈现:
一、通用命名基础(所有变量必遵守,先明确前提)
- 风格:小写字母 + 下划线分隔(蛇形命名
snake_case),禁止驼峰命名(如userName); - 语义:见名知意,避免无意义缩写(如
uid可接受,x1不推荐); - 禁用:关键字(
class/def)、魔法属性格式(__xxx__)、数字开头、特殊字符(-/@)。
二、类变量命名规范 + 具体示例
类变量是类的共享属性,命名需突出「全局、共享、常量、统计」特性,分 3 类场景:
表格
| 类变量类型 | 命名规则 | 正面示例(推荐) | 反面示例(避坑) |
|---|---|---|---|
| 普通共享类变量 | 蛇形命名,体现 "共享 / 统计" 语义 | total_users(总用户数)default_timeout(默认超时时间)class_name(班级名称)pass_rate(考试通过率)system_version(系统版本) |
totalUsers(驼峰命名,不符合 PEP8)tu(无意义缩写,可读性差)123count(数字开头,语法错误)class(关键字,禁用)TotalCount(大驼峰,混淆类名风格) |
| 常量类变量 | 全大写 + 下划线分隔,体现 "不可修改" | MAX_RETRY = 3(最大重试次数)DEFAULT_PORT = 8080(默认端口)SPECIES = "人类"(物种常量)MAX_SCORE = 100(满分分值)ALLOWED_METHODS = ["GET", "POST"](允许的请求方法) |
maxRetry = 3(驼峰 + 小写,无常量标识)max_score = 3(全小写,无法区分普通变量)MaxScore = 3(混合大小写,不规范)max-score = 3(含连字符,语法错误) |
| 私有类变量 | 单下划线开头 + 蛇形命名(约定私有,外部不建议访问) | _internal_cache(内部缓存)_temp_data(临时存储数据)_grade_mapping(年级映射字典)_debug_mode(调试模式标识) |
__internal_cache(双下划线,触发名称改写,非必要禁用)_InternalCache(首字母大写,不符合蛇形)_internalCache(驼峰,不规范)internal_cache(无下划线,无法标识私有) |
完整代码示例(类变量命名)
python
运行
class OrderSystem:
# 1. 常量类变量(全大写)
MAX_ORDER_ITEMS = 20 # 订单最大商品数量
DEFAULT_EXPIRE_HOURS = 24 # 订单默认过期小时数
PAYMENT_TYPES = ["alipay", "wechat_pay"] # 支持的支付方式
MIN_ORDER_AMOUNT = 0.01 # 最小订单金额
# 2. 普通共享类变量(蛇形命名)
total_orders = 0 # 系统总订单数
pending_orders = 0 # 待支付订单数
completed_orders = 0 # 已完成订单数
platform_name = "电商小铺" # 平台名称
# 3. 私有类变量(单下划线开头)
_order_status_mapping = {0: "待支付", 1: "已支付", 2: "已取消"} # 订单状态映射表
_temp_order_cache = {} # 临时订单缓存
_is_maintenance = False # 系统是否在维护中
def create_order(self):
# 修改普通共享类变量
OrderSystem.total_orders += 1
OrderSystem.pending_orders += 1
三、实例变量命名规范 + 具体示例
实例变量是单个实例的独有属性,命名需突出「个体特征、实例状态」,分 3 类场景:
表格
| 实例变量类型 | 命名规则 | 正面示例(推荐) | 反面示例(避坑) |
|---|---|---|---|
| 普通实例变量 | 蛇形命名,体现 "实例独有" 语义 | user_id = 10001(用户唯一 ID)order_id = "ORD20251226"(订单编号)phone_number = "13800138000"(手机号)shipping_address = "北京市朝阳区"(收货地址)register_time = "2025-01-01"(注册时间)is_active = True(是否激活) |
userID = 10001(驼峰命名,不符合 PEP8)uid = 10001(无意义缩写,可读性差)PhoneNumber = "138..."(大驼峰,混淆类名)1phone(数字开头,语法错误)user-id(含连字符,语法错误) |
| 私有实例变量 | 单下划线开头 + 蛇形命名(约定私有,外部不建议访问) | _password = "e10adc3949ba59abbe56e057f20f883e"(密码哈希)_login_token = "token_123456"(登录令牌)_internal_state = "init"(实例内部状态)_email_verified = False(邮箱是否验证) |
__password(双下划线,慎用,触发名称改写)_Password(首字母大写,不规范)_loginToken(驼峰,不符合蛇形)password(无下划线,无法标识私有) |
| 强私有实例变量 | 双下划线开头 + 蛇形命名(慎用,防止子类覆盖) | __secret_key = "abc_xyz_123"(加密密钥)__transaction_id = "trans_20251226"(交易流水号)__core_config = {}(核心配置,禁止子类修改) |
___secret_key(多下划线,冗余混乱)__SecretKey(混合大小写,不规范)__secret-key(含连字符,语法错误)__secretkey(无下划线,可读性差) |
完整代码示例(实例变量命名)
python
运行
class User:
# 类变量(常量)
MIN_REGISTER_AGE = 18 # 最小注册年龄
def __init__(self, user_id, username, phone):
# 1. 普通实例变量(蛇形命名,实例独有)
self.user_id = user_id # 用户唯一标识
self.username = username # 用户名
self.phone_number = phone # 联系电话
self.age = None # 年龄
self.register_time = None # 注册时间
self.is_active = True # 账号是否激活
self.user_avatar = None # 用户头像地址
self.receive_addresses = [] # 收货地址列表
# 2. 私有实例变量(单下划线开头,类内操作)
self._email = None # 邮箱(外部不建议直接访问)
self._login_count = 0 # 登录次数(内部统计)
self._email_verified = False # 邮箱验证状态(内部标识)
self._last_login_time = None # 最后登录时间
# 3. 强私有实例变量(双下划线开头,防止子类覆盖)
self.__password_hash = None # 密码哈希值(核心隐私数据)
self.__secret_token = None # 用户专属秘钥(禁止子类修改)
def set_email(self, email):
# 类内操作私有实例变量
self._email = email
def update_password(self, new_password_hash):
# 类内操作强私有实例变量
self.__password_hash = new_password_hash
def add_login_count(self):
self._login_count += 1
四、避坑补充:易出错的命名场景示例
-
禁止类变量与实例变量同名:会导致实例访问时优先读取实例变量,逻辑混乱
python
运行
# 错误示例 class BadExample: name = "默认名称" # 类变量 def __init__(self, name): self.name = name # 实例变量与类变量同名,易混淆 # 正确示例 class GoodExample: default_name = "默认名称" # 类变量(改名避免冲突) def __init__(self, name): self.name = name # 实例变量 -
可变类型类变量命名:仍遵循类变量规则,语义体现 "集合 / 映射" 特性
python
运行
class Cart: DEFAULT_ITEMS = ["环保购物袋"] # 常量类变量(全大写) _hot_recommend_items = ["纸巾", "矿泉水"] # 私有类变量(单下划线) total_cart_count = 0 # 普通类变量(蛇形命名)
总结
表格
| 变量类型 | 核心命名规则 | 经典示例汇总 |
|---|---|---|
| 类变量 | 普通:蛇形;常量:全大写;私有:单下划线 | total_users、MAX_RETRY、_internal_cache |
| 实例变量 | 普通:蛇形;私有:单下划线;强私有:双下划线 | phone_number、_password、__secret_key |
这些示例均符合 PEP 8 规范,既能清晰区分变量归属(类 / 实例),又能通过名称直观理解用途,可直接在实际项目中复用。
book.jDpaTrAcKinG.coM/article/B2c3D4e5F6.html
book.jDpaTrAcKinG.coM/article/C3d4E5f6G7.html
book.jDpaTrAcKinG.coM/article/D4e5F6g7H8.html
book.jDpaTrAcKinG.coM/article/E5f6G7h8I9.html
book.jDpaTrAcKinG.coM/article/F6g7H8i9J0.html
book.jDpaTrAcKinG.coM/article/G7h8I9j0K1.html
book.jDpaTrAcKinG.coM/article/H8i9J0k1L2.html
book.jDpaTrAcKinG.coM/article/I9j0K1l2M3.html
book.jDpaTrAcKinG.coM/article/J0k1L2m3N4.html
book.jDpaTrAcKinG.coM/article/K1l2M3n4O5.html
book.jDpaTrAcKinG.coM/article/L2m3N4o5P6.html
book.jDpaTrAcKinG.coM/article/M3n4O5p6Q7.html
book.jDpaTrAcKinG.coM/article/N4o5P6q7R8.html
book.jDpaTrAcKinG.coM/article/O5p6Q7r8S9.html
book.jDpaTrAcKinG.coM/article/P6q7R8s9T0.html
book.jDpaTrAcKinG.coM/blog/Q7r8S9t0U1.html
book.jDpaTrAcKinG.coM/blog/R8s9T0u1V2.html
book.jDpaTrAcKinG.coM/blog/S9t0U1v2W3.html
book.jDpaTrAcKinG.coM/blog/T0u1V2w3X4.html
book.jDpaTrAcKinG.coM/blog/U1v2W3x4Y5.html
book.jDpaTrAcKinG.coM/blog/V2w3X4y5Z6.html
book.jDpaTrAcKinG.coM/blog/W3x4Y5z6A7.html
book.jDpaTrAcKinG.coM/blog/X4y5Z6a7B8.html
book.jDpaTrAcKinG.coM/blog/Y5z6A7b8C9.html
book.jDpaTrAcKinG.coM/blog/Z6a7B8c9D0.html
book.jDpaTrAcKinG.coM/article/a7B8c9D0e1.html
book.jDpaTrAcKinG.coM/article/b8C9d0E1f2.html
book.jDpaTrAcKinG.coM/article/c9D0e1F2g3.html
book.jDpaTrAcKinG.coM/article/d0E1f2G3h4.html
book.jDpaTrAcKinG.coM/article/e1F2g3H4i5.html
book.jDpaTrAcKinG.coM/article/f2G3h4I5j6.html
book.jDpaTrAcKinG.coM/article/g3H4i5J6k7.html
book.jDpaTrAcKinG.coM/article/h4I5j6K7l8.html
book.jDpaTrAcKinG.coM/article/i5J6k7L8m9.html
book.jDpaTrAcKinG.coM/article/j6K7l8M9n0.html
book.jDpaTrAcKinG.coM/article/k7L8m9N0o1.html
book.jDpaTrAcKinG.coM/article/l8M9n0O1p2.html
book.jDpaTrAcKinG.coM/article/m9N0o1P2q3.html
book.jDpaTrAcKinG.coM/article/n0O1p2Q3r4.html
book.jDpaTrAcKinG.coM/article/o1P2q3R4s5.html
book.jDpaTrAcKinG.coM/article/p2Q3r4S5t6.html
book.jDpaTrAcKinG.coM/article/q3R4s5T6u7.html
book.jDpaTrAcKinG.coM/article/r4S5t6U7v8.html
book.jDpaTrAcKinG.coM/article/s5T6u7V8w9.html
book.jDpaTrAcKinG.coM/article/t6U7v8W9x0.html
book.jDpaTrAcKinG.coM/article/u7V8w9X0y1.html
book.jDpaTrAcKinG.coM/article/v8W9x0Y1z2.html
book.jDpaTrAcKinG.coM/article/w9X0y1Z2a3.html
book.jDpaTrAcKinG.coM/article/x0Y1z2A3b4.html
bbs.jDpaTrAcKinG.coM/article/A1b2C3d4E5.html
bbs.jDpaTrAcKinG.coM/article/B2c3D4e5F6.html
bbs.jDpaTrAcKinG.coM/article/C3d4E5f6G7.html
bbs.jDpaTrAcKinG.coM/article/D4e5F6g7H8.html
bbs.jDpaTrAcKinG.coM/article/E5f6G7h8I9.html
bbs.jDpaTrAcKinG.coM/article/F6g7H8i9J0.html
bbs.jDpaTrAcKinG.coM/article/G7h8I9j0K1.html
bbs.jDpaTrAcKinG.coM/article/H8i9J0k1L2.html
bbs.jDpaTrAcKinG.coM/article/I9j0K1l2M3.html
bbs.jDpaTrAcKinG.coM/article/J0k1L2m3N4.html
bbs.jDpaTrAcKinG.coM/article/K1l2M3n4O5.html
bbs.jDpaTrAcKinG.coM/article/L2m3N4o5P6.html
bbs.jDpaTrAcKinG.coM/article/M3n4O5p6Q7.html
bbs.jDpaTrAcKinG.coM/article/N4o5P6q7R8.html
bbs.jDpaTrAcKinG.coM/article/O5p6Q7r8S9.html
bbs.jDpaTrAcKinG.coM/article/P6q7R8s9T0.html
bbs.jDpaTrAcKinG.coM/blog/Q7r8S9t0U1.html
bbs.jDpaTrAcKinG.coM/blog/R8s9T0u1V2.html
bbs.jDpaTrAcKinG.coM/blog/S9t0U1v2W3.html
bbs.jDpaTrAcKinG.coM/blog/T0u1V2w3X4.html
bbs.jDpaTrAcKinG.coM/blog/U1v2W3x4Y5.html
bbs.jDpaTrAcKinG.coM/blog/V2w3X4y5Z6.html
bbs.jDpaTrAcKinG.coM/blog/W3x4Y5z6A7.html
bbs.jDpaTrAcKinG.coM/blog/X4y5Z6a7B8.html
bbs.jDpaTrAcKinG.coM/blog/Y5z6A7b8C9.html
bbs.jDpaTrAcKinG.coM/blog/Z6a7B8c9D0.html
bbs.jDpaTrAcKinG.coM/article/a7B8c9D0e1.html
bbs.jDpaTrAcKinG.coM/article/b8C9d0E1f2.html
bbs.jDpaTrAcKinG.coM/article/c9D0e1F2g3.html
bbs.jDpaTrAcKinG.coM/article/d0E1f2G3h4.html
bbs.jDpaTrAcKinG.coM/article/e1F2g3H4i5.html
bbs.jDpaTrAcKinG.coM/article/f2G3h4I5j6.html
bbs.jDpaTrAcKinG.coM/article/g3H4i5J6k7.html
bbs.jDpaTrAcKinG.coM/article/h4I5j6K7l8.html
bbs.jDpaTrAcKinG.coM/article/i5J6k7L8m9.html
bbs.jDpaTrAcKinG.coM/article/j6K7l8M9n0.html
bbs.jDpaTrAcKinG.coM/article/k7L8m9N0o1.html
bbs.jDpaTrAcKinG.coM/article/l8M9n0O1p2.html
bbs.jDpaTrAcKinG.coM/article/m9N0o1P2q3.html
bbs.jDpaTrAcKinG.coM/article/n0O1p2Q3r4.html
bbs.jDpaTrAcKinG.coM/article/o1P2q3R4s5.html
bbs.jDpaTrAcKinG.coM/article/p2Q3r4S5t6.html
bbs.jDpaTrAcKinG.coM/article/q3R4s5T6u7.html
bbs.jDpaTrAcKinG.coM/article/r4S5t6U7v8.html
bbs.jDpaTrAcKinG.coM/article/s5T6u7V8w9.html
bbs.jDpaTrAcKinG.coM/article/t6U7v8W9x0.html
bbs.jDpaTrAcKinG.coM/article/u7V8w9X0y1.html
bbs.jDpaTrAcKinG.coM/article/v8W9x0Y1z2.html
bbs.jDpaTrAcKinG.coM/article/w9X0y1Z2a3.html
bbs.jDpaTrAcKinG.coM/article/x0Y1z2A3b4.html
mp.jDpaTrAcKinG.coM/article/A2b5C7d1E9.html
mp.jDpaTrAcKinG.coM/article/B3c6D8e2F0.html
mp.jDpaTrAcKinG.coM/article/C4d7E9f3G1.html
mp.jDpaTrAcKinG.coM/article/D5e8F0g4H2.html
mp.jDpaTrAcKinG.coM/article/E6f9G1h5I3.html
mp.jDpaTrAcKinG.coM/article/F7g0H2i6J4.html
mp.jDpaTrAcKinG.coM/article/G8h1I3j7K5.html
mp.jDpaTrAcKinG.coM/article/H9i2J4k8L6.html
mp.jDpaTrAcKinG.coM/article/I0j3K5l9M7.html
mp.jDpaTrAcKinG.coM/article/J1k4L6m0N8.html
mp.jDpaTrAcKinG.coM/article/K2l5M7n1O9.html
mp.jDpaTrAcKinG.coM/article/L3m6N8o2P0.html
mp.jDpaTrAcKinG.coM/article/M4n7O9p3Q1.html
mp.jDpaTrAcKinG.coM/article/N5o8P0q4R2.html
mp.jDpaTrAcKinG.coM/article/O6p9Q1r5S3.html
mp.jDpaTrAcKinG.coM/blog/P7q0R2s6T4.html
mp.jDpaTrAcKinG.coM/blog/Q8r1S3t7U5.html
mp.jDpaTrAcKinG.coM/blog/R9s2T4u8V6.html
mp.jDpaTrAcKinG.coM/blog/S0t3U5v9W7.html
mp.jDpaTrAcKinG.coM/blog/T1u4V6w0X8.html
mp.jDpaTrAcKinG.coM/blog/U2v5W7x1Y9.html
mp.jDpaTrAcKinG.coM/blog/V3w6X8y2Z0.html
mp.jDpaTrAcKinG.coM/blog/W4x7Y9z3A1.html
mp.jDpaTrAcKinG.coM/blog/X5y8Z0a4B2.html
mp.jDpaTrAcKinG.coM/blog/Y6z9A1b5C3.html
mp.jDpaTrAcKinG.coM/blog/Z7a0B2c6D4.html
mp.jDpaTrAcKinG.coM/article/a8b1C3d7E5.html
mp.jDpaTrAcKinG.coM/article/b9c2D4e8F6.html
mp.jDpaTrAcKinG.coM/article/c0d3E5f9G7.html
mp.jDpaTrAcKinG.coM/article/d1e4F6g0H8.html
mp.jDpaTrAcKinG.coM/article/e2f5G7h1I9.html
mp.jDpaTrAcKinG.coM/article/f3g6H8i2J0.html
mp.jDpaTrAcKinG.coM/article/g4h7I9j3K1.html
mp.jDpaTrAcKinG.coM/article/h5i8J0k4L2.html
mp.jDpaTrAcKinG.coM/article/i6j9K1l5M3.html
mp.jDpaTrAcKinG.coM/article/j7k0L2m6N4.html
mp.jDpaTrAcKinG.coM/article/k8l1M3n7O5.html
mp.jDpaTrAcKinG.coM/article/l9m2N4o8P6.html
mp.jDpaTrAcKinG.coM/article/m0n3O5p9Q7.html
mp.jDpaTrAcKinG.coM/article/n1o4P6q0R8.html
mp.jDpaTrAcKinG.coM/article/o2p5Q7r1S9.html
mp.jDpaTrAcKinG.coM/article/p3q6R8s2T0.html
mp.jDpaTrAcKinG.coM/article/q4r7S9t3U1.html
mp.jDpaTrAcKinG.coM/article/r5s8T0u4V2.html
mp.jDpaTrAcKinG.coM/article/s6t9U1v5W3.html
mp.jDpaTrAcKinG.coM/article/t7u0V2w6X4.html
mp.jDpaTrAcKinG.coM/article/u8v1W3x7Y5.html
mp.jDpaTrAcKinG.coM/article/v9w2X4y8Z6.html
mp.jDpaTrAcKinG.coM/article/w0x3Y5z9A7.html
mp.jDpaTrAcKinG.coM/article/x1y4Z6a0B8.html
m.jDpaTrAcKinG.coM/article/A3b6C8d2E0.html
m.jDpaTrAcKinG.coM/article/B4c7D9e3F1.html
m.jDpaTrAcKinG.coM/article/C5d8E0f4G2.html
m.jDpaTrAcKinG.coM/article/D6e9F1g5H3.html
m.jDpaTrAcKinG.coM/article/E7f0G2h6I4.html
m.jDpaTrAcKinG.coM/article/F8g1H3i7J5.html
m.jDpaTrAcKinG.coM/article/G9h2I4j8K6.html
m.jDpaTrAcKinG.coM/article/H0i3J5k9L7.html
m.jDpaTrAcKinG.coM/article/I1j4K6l0M8.html
m.jDpaTrAcKinG.coM/article/J2k5L7m1N9.html
m.jDpaTrAcKinG.coM/article/K3l6M8n2O0.html
m.jDpaTrAcKinG.coM/article/L4m7N9o3P1.html
m.jDpaTrAcKinG.coM/article/M5n8O0p4Q2.html
m.jDpaTrAcKinG.coM/article/N6o9P1q5R3.html
m.jDpaTrAcKinG.coM/article/O7p0Q2r6S4.html
m.jDpaTrAcKinG.coM/blog/P8q1R3s7T5.html
m.jDpaTrAcKinG.coM/blog/Q9r2S4t8U6.html
m.jDpaTrAcKinG.coM/blog/R0s3T5u9V7.html
m.jDpaTrAcKinG.coM/blog/S1t4U6v0W8.html
m.jDpaTrAcKinG.coM/blog/T2u5V7w1X9.html
m.jDpaTrAcKinG.coM/blog/U3v6W8x2Y0.html
m.jDpaTrAcKinG.coM/blog/V4w7X9y3Z1.html
m.jDpaTrAcKinG.coM/blog/W5x8Z0a4A2.html
m.jDpaTrAcKinG.coM/blog/X6y9A1b5B3.html
m.jDpaTrAcKinG.coM/blog/Y7z0B2c6C4.html
m.jDpaTrAcKinG.coM/blog/Z8a1C3d7D5.html
m.jDpaTrAcKinG.coM/article/a9b2D4e8E6.html
m.jDpaTrAcKinG.coM/article/b0c3E5f9F7.html
m.jDpaTrAcKinG.coM/article/c1d4F6g0G8.html
m.jDpaTrAcKinG.coM/article/d2e5G7h1H9.html
m.jDpaTrAcKinG.coM/article/e3f6H8i2I0.html
m.jDpaTrAcKinG.coM/article/f4g7I9j3J1.html
m.jDpaTrAcKinG.coM/article/g5h8J0k4K2.html
m.jDpaTrAcKinG.coM/article/h6i9K1l5L3.html
m.jDpaTrAcKinG.coM/article/i7j0L2m6M4.html
m.jDpaTrAcKinG.coM/article/j8k1M3n7N5.html
m.jDpaTrAcKinG.coM/article/k9l2N4o8O6.html
m.jDpaTrAcKinG.coM/article/l0m3O5p9P7.html
m.jDpaTrAcKinG.coM/article/m1n4P6q0Q8.html
m.jDpaTrAcKinG.coM/article/n2o5Q7r1R9.html
m.jDpaTrAcKinG.coM/article/o3p6R8s2S0.html
m.jDpaTrAcKinG.coM/article/p4q7S9t3T1.html
m.jDpaTrAcKinG.coM/article/q5r8T0u4U2.html
m.jDpaTrAcKinG.coM/article/r6s9U1v5V3.html
m.jDpaTrAcKinG.coM/article/s7t0V2w6W4.html
m.jDpaTrAcKinG.coM/article/t8u1W3x7X5.html
m.jDpaTrAcKinG.coM/article/u9v2X4y8Y6.html
m.jDpaTrAcKinG.coM/article/v0w3Y5z9Z7.html