You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python命名规范疑问:值为可变类型的常量是否应使用大写蛇形命名?

Python命名规范疑问:值为可变类型的常量是否应使用大写蛇形命名?

嗨,这个问题问得特别戳痛点,不少刚把Python命名规范摸得七七八八的同学都会卡在这儿~

首先得明确:Python里其实没有像JavaScript那样的语言级const关键字,咱们说的大写蛇形命名(比如UPPER_SNAKE_CASE)本质上是社区约定俗成的标记,核心目的是告诉其他开发者:「这个变量的引用不应该被重新赋值」——而不是限制它指向的可变对象内部的修改。

对比你提到的JavaScript场景:JS的const someVar = someObject是保证someVar不会被重新绑定到别的对象,但对象内部随便改;这和Python里用大写命名的逻辑完全对齐。

回到你的具体场景:你的全局变量始终指向那个符合特定 schema 的列表,只是列表的长度、内部字典的值会变——这种情况完全适合用SOME_LIST命名。因为你并没有打算把这个变量重新赋值成别的列表(比如不会写SOME_LIST = []或者换成别的对象),只是修改它指向的可变对象的内部内容,这完全符合大写命名的约定意图。

反过来,如果这个变量某天会被重新绑定到新的列表对象(比如业务逻辑里需要替换整个列表),那它就只是个普通的可变变量,这时候就该用小写的some_list了。

举个实际例子:很多开源项目里会用大写命名全局的配置字典,比如APP_CONFIG,然后在代码里修改APP_CONFIG的键值对,大家都默认这是合理的——因为变量本身的引用没动,只是内部内容在调整。

总结一下判断标准:就看这个变量的引用是否会被改变——如果不会重新赋值成别的对象,哪怕内部内容可变,就用大写蛇形;如果变量本身会被重新绑定,就用小写。

备注:内容来源于stack exchange,提问作者JB the frequently clueless

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 12:40:30