约定:将Python函数输出以常数为单位



我知道,python中的常数更像是一个惯例,但我在以下行中与其他程序员进行了争执:

FILE = open("file.txt").readlines()

使用FILE后来使用多次使用,例如在for line in FILE

我们希望编码尽可能好。我相信FILE应该永远不会被声明为常数,因为它依赖于open()readlines()功能的输出。然而,反对词是FILE永远不会改变我们的程序,因此行为就像常数一样。它是哪一个?

例外,是否应该是一个变量,即根据命名约定将其写成变量,那么file在所有小写中?

一个常数不仅是在程序生命中不会改变的东西,而且是一个值的名称,其价值是预定义的,并且通常与应用程序的动态状态无关或环境。典型用途是用于诸如PI之类的数学常数或NUMBER_OF_PLAYERS

之类的应用程序参数

在您的示例中,FILE的值取决于文件的内容。这不是一个预定义的常数,因为文件可以从程序的一个运行更改为下一个。

另一种看待它的方法是,当您看到程序中常数的使用时,您只需要找到其初始化即可知道其值是什么。但是,如果您从文件中初始化常数,则无法分辨其值是什么。

pep8不能定义"常数",因此您可以做任何想做的事情,但是我认为大多数程序员会发现您对FILE的预期使用会令人困惑或非偶然。考虑一下,在某些编程语言中,您的尝试甚至是不可能的 - 如果它们具有明确的constant声明,则他们要求在编译时可以计算该值。

最新更新