短变量名有什么好处吗?

2024-03-28 21:30:29 发布

您现在位置:Python中文网/ 问答频道 /正文

在python这样的语言中,使用较短的变量名,有没有什么可以提高内存和速度的呢?在

如果是这样的话,什么样的情况才是合理的考虑呢?在

注意

我不是提倡使用简短的变量名,我只是想知道,请(重新)阅读问题。在

注2 拜托,我知道描述性变量名的值。我已经看了足够多的代码来选择描述性的名称而不是较短的名称,并且理解了它的价值。直截了当的不真的没用。在


Tags: 内存代码名称语言情况速度价值描述性
3条回答

“like python”有一个问题,因为不是所有的解释语言都是相同的。在

对于纯解释的语言,它比像Python这样有预编译步骤的语言有更大的影响。严格地说,这不是语言差异(可以有一个Javascript引擎进行预编译,另一个没有预编译),但它确实影响了这个问题的答案。在

把“像python一样”扩展到包括每一种解释语言,我会说答案是“是的,对其中一些人来说,至少在某些时候是这样”。下一个问题是,“多少钱”。在

从1997年到1998年初,我一直在研究一些相当复杂的javascript代码,这些代码利用了netscapenavigator4和internetexplorer4的一些新特性。这在当时是一个庞大的javascript文件,当时拨号上网的普及意味着每千字节都以站点速度计算。在

为此,我们使用了一个minimiser脚本。这样做的主要目的是重写变量使其更短(lastHeight变为auserSelbecmomesb等等)。在

它不仅减少了下载时间,而且使一个更重的功能变得更快。但只有当你是一个整天都在看别的东西的人,这意味着我和另一个同事。在

所以,是的,如果我们把Javascript放在“像python一样”的类别中,那么在以下条件下,Javascript可以起到作用:

  1. 它运行在奔腾、奔腾Pro和486s上(当时奔腾II已经上市,但我们没有)。我得到了一个新的机器在项目的一部分,这意味着我从133MHz到166MHz。在
  2. 这是一个相当大的令人讨厌的循环(大部分脚本没有明显的区别)。在
  3. 它运行在15年前的脚本引擎上,而此后脚本引擎的性能却没有任何改善。在

但还是没什么区别。在

我们可以假设,其他一些被解释的语言也受到同样微小程度的影响。在

即使在1997年,如果不是巧合地给了我另一个优势,我也不会为此烦恼,而且我肯定不是在研究最小化版本。在

如果你用“像Python这样的语言”来指解释语言,那么是的,它会带来不同,因为解析可能需要更长的时间。我想说差别是不明显的。在

不过,我完全同意吃夜宵,别这样。让你的代码对人类可读。让解析器/编译器处理机器的可读性。在

记住关于优化的规则:

  1. 别这么做。在
  2. (仅限专家)暂时不要做。在

不,不,不,不,不

没有

使用可读的名称,而不是短名称。性能上的差异是绝对可以商榷的。在


$ python -m timeit "i = 5" "i *= i"
10000000 loops, best of 3: 0.0938 usec per loop

$ python -m timeit "is_there_anything_to_be_gained_from_short_variable_names = 5" "is_there_anything_to_be_gained_from_short_variable_names *= is_there_anything_to_be_gained_from_short_variable_names"
10000000 loops, best of 3: 0.0927 usec per loop

具有讽刺意味的是,当在这台电脑上测量长变量名时,每次执行的速度要快~0.001 usec。在

相关问题 更多 >