C和Python属于两种不同类别的语言。
前者是静态类型的。后者是动态的。
在静态类型语言中,类型检查器能够推断每个表达式的类型,并在“编译”阶段检查它是否符合给定的声明。
在动态类型语言中,所需的类型信息在运行时不可用。而一个表达式的类型可能会从一个运行到另一个运行。当然,您可以在程序执行期间添加类型检查。这不是Python中的选择。这有利于“鸭打字”。缺点是解释器无法检查类型的正确性。
关于const关键字。这是一个类型修饰符。限制允许使用的变量(有时修改允许的编译器优化)。在运行时检查动态语言似乎效率很低。首先分析,这将意味着检查变量是否为每个感染的const。这可以进行优化,但即使如此,这是否值得?
除了技术方面,不要忘记每种语言都有自己的哲学。在Python中,通常的选择是赞成“约定”而不是“限制”。例如,常数应在所有大写上拼写。没有技术执法。这只是一个约定如果你遵循它,你的程序将按照其他程序员的预期行为。如果你决定修改一个“常量”,Python就不会抱怨。但是你应该觉得自己在做错事了。你打破一个约定也许你有这样做的原因。也许你不应该有你的责任
最后要注意的是,在动态语言中,程序的“正确性”更多的是单元测试的责任,而不是编译器的手。如果您确实遇到困难,您会发现一些“代码检查器”。那些是PyLint,PyChecker,PyFlakes …