C和Python属于两种不同的语言类别。
前一个是 静态 类型的。后者是 动态的 。
在静态类型的语言中, 类型检查器 能够推断每个表达式的类型,并在“编译”阶段检查它是否与给定的声明匹配。
在动态类型语言中,所需的类型信息直到运行时才可用。表达式的类型可能因一次运行而异。当然,您可以在程序执行期间添加 类型检查 。这 不是
在Python中做出的选择。这具有允许“鸭式打字”的优点。缺点是解释器无法检查类型正确性。
关于 const 关键字。这是一个 类型修饰符
。限制允许使用的变量(有时修改允许的编译器优化)。在运行时检查动态语言似乎效率很低。在最初的分析中,这将意味着针对每种影响检查一个变量是否为 const
。可以对它进行优化,但是这样做是否值得呢?
除了技术方面,别忘了每种语言都有自己的哲学。在Python中,通常的选择是赞成“约定”而不是“限制”。例如,所有大写字母都应拼写为常数。没有任何技术执行。这只是一个约定。如果您遵循它,您的程序将表现为“其他程序员”所期望的。如果您决定修改“常量”,Python不会抱怨。但是
您 应该感觉自己在做“某些错误”。您违反约定。也许您有这样做的理由。也许你不应该。您的责任。
最后一点,在动态语言中,程序的“正确性”比单元编译器更重要的是单元测试的责任。如果您确实很难做到这一点,那么您会发现一些“代码检查器”。这些是PyLint,PyChecker,PyFlakes
…
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)