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

为什么Python中以全大写命名的常量可以被修改?

Python中的"常量":为什么全大写变量还能被修改?

Python里并没有真正的内置常量类型,大家用全大写字母命名变量只是一种行业约定——用来明确告诉其他开发者:这个变量应该被当作常量,不要随便修改。但Python本身不会给这类变量加任何限制,你硬要改它的话,程序完全不会报错,值也会跟着变。

比如这段代码:

num1 = 20
NUM = 40
print(NUM)

if num1 > 10:
    NUM = NUM - 5
print(NUM)

运行后输出是:

40
35

你以为NUM作为"常量"不会被修改或者会触发错误,但实际上因为这只是命名规范,不是Python的强制规则,所以代码里修改NUM的操作完全有效,最终值变成了35。

如果确实需要创建真正不可修改的常量,可以借助enum.Enum来实现,比如:

from enum import Enum

class Constants(Enum):
    NUM = 40

print(Constants.NUM.value)
# 尝试修改会报错
Constants.NUM = 30  # 触发AttributeError: Cannot reassign members.

内容的提问来源于stack exchange,提问作者Tarek Hassan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:12:07