我有人告诉我用变量替换代码中常用的常量.例如:
if a > 50:
Run Code Online (Sandbox Code Playgroud)
有类似的东西:
b = 50
if a > b:
Run Code Online (Sandbox Code Playgroud)
考虑到数字50通常用在我的代码周围的事实(例如,用于这样的比较).那怎么更好呢?为此目的的变量是否更符合内存,还是仅仅是为了编码风格?我正在使用Python 3.4
使用在中心位置设置的变量替换常量的想法不是关于内存管理,而是关于应用程序管理.常量应该是常量,但通常,对应用程序要求的更改需要调整这些常量的值.
因此,如果您有支票a > 50,可能在将来某个时候需要检查a > 60.在这种情况下,您必须更新代码以反映新要求.
现在,使用常量的想法是,您只需要在中心位置调整这些数字.例如,您可以使用一个constants.py模块在中心位置声明所有重要常量,并且您只需要执行检查a > constants.SOME_THRESHOLD.在这种情况下,当需求发生变化时,您只需要在一个地方更改常量值,而不是搜索使用该常量的所有位置.
如果你有不同的常量具有相同的值但意味着不同的东西,那就更为重要了.例如,有两个不同的常量用于检查,两个值都以值开始50.现在,对于其中一个常量,应将值更改为60.使用代码中的实际值,您现在需要在每次出现时50确定它是应该60保留还是保留50.但是使用集中式常量,您只需要更新常量,一切都能正常工作.
使用常量变量还可以获得这些常量获得实际名称的好处.A 50可以意味着什么; 但如果有一个变量名,你可以给它一个名称来描述它应该是什么意思.
当然,拥有这样的集中常量对一切都没有意义.您应该根据具体情况决定哪些常量值适合作为常量变量提取,哪些不是.
就内存而言,当然在某些时候声明变量需要将变量存储在某处.但变量非常便宜,所以它并不重要.并且该值很可能无论如何都会被回收:对于小整数,Python甚至将实际的常量整数对象保留为缓存.
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |