2015-11-13 77 views
0

如果这是一种语言设计选择,它的解释是什么?为什么python对常量没有任何访问修饰符?

是否有任何其他解决方法来避免某人或甚至在执行程序时更改常量值而无需使用不可变数据类型?

+0

你用什么常量?你可以使用不可变数据结构吗? – dm03514

+0

难道你不能只分配任何东西给那个常量? –

+0

你的意思是一个Tuple?当我可以使用访问修饰符时,使用一个元组对我来说感觉有点肮脏。 –

回答

2

Python倾向于简单化,并使用name mangling

总之,约定是使用下划线保护/私有变量。

检查这个问题,以及:

why python does not have access modifier?And what are there alternatives in python?

EDIT1:

如果你真的想隐藏起来,你可以试试这个:

#constants.py 
foo = 1 

然后在你的项目中,使用:

import constants 

现在你可以访问他们,并“保护”。

+0

下划线不会阻止我改变常量的值。 –

+0

它不会,除非你把所有的常量值放在它们自己的模块中。 – jmugz3

+1

@fandressouza:这就是Python的哲学“我们都是大人”的地方。“_'说”你不应该“。但是如果你有这样的合理需求,Python不会阻止你,因为它认为你是一个成熟的成年人,并且始终存在原作者没有预料到的用例。 – ShadowRanger