常量是一个变量,它的值在程序的整个生命周期中都保持不变。Python没有内置的常量类型,但是Python程序员使用所有大写字母来表示变量应该被视为常量并且永远不会被更改:
num1=20 NUM =40 print(NUM) if num1 >10: NUM = NUM-5 print(NUM)
输出40 35
我期望不改变仍然40不是35或得到错误
b09cbbtk1#
“永远不应该被改变”和“永远不能被改变”是不一样的。Python的实际语言规范没有一个机制来创建一个永远不能被重新分配的变量。给一个变量一个ALL_CAPS的名字是一种“承诺”(一种非强制性的承诺),对于那些阅读你的代码的人来说,如果他们熟悉Python的约定,这是一个全局变量,不会发生意外的变化。可以把它看作是在它后面加一个注解的简写,就像这样:
NUM = 40 # subsequent code won't modify this value, I pinky-swear
Python解释器不会阻止你在注解中撒谎,也不会阻止你做一些违反语言普遍接受的约定的事情。
1条答案
按热度按时间b09cbbtk1#
“永远不应该被改变”和“永远不能被改变”是不一样的。Python的实际语言规范没有一个机制来创建一个永远不能被重新分配的变量。
给一个变量一个ALL_CAPS的名字是一种“承诺”(一种非强制性的承诺),对于那些阅读你的代码的人来说,如果他们熟悉Python的约定,这是一个全局变量,不会发生意外的变化。可以把它看作是在它后面加一个注解的简写,就像这样:
Python解释器不会阻止你在注解中撒谎,也不会阻止你做一些违反语言普遍接受的约定的事情。