gpt4 book ai didi

python - python中变量名与程序效率

转载 作者:太空狗 更新时间:2023-10-30 01:15:16 24 4
gpt4 key购买 nike

当我编程时,我喜欢给我的变量起一个非常有意义的名字。据我了解,在 C++ 和其他编译语言中,这两行是完全等价的:

第 1 行:

bool a = true;

第 2 行:

bool bob_likes_very_much_to_eat_strawberry_on_friday_evening = true;

原因是:会被编译,过程中会丢失变量名(?)。

另一方面,这就是我要问的,似乎以下两个在 python 中不等价:

第 1 行:

a = True

第 2 行:

bob_likes_very_much_to_eat_strawberry_on_friday_evening = True

原因是它被解释,解释器将使用一些以变量名作为查询键的字典(?)。我不知道这些字典是如何实现的,但对我来说,散列长变量名称可能需要更长的时间(?),并且在某些情况下会产生影响,这听起来并不疯狂。

那么,在某些情况下我应该小心保持我的变量名长度合理吗?

注1:这个线程非常相似: Does how you name a variable have any impact on the memory usage of an application?但是没有出现关于python的明确答案(选择的答案说它对一般的解释语言有影响,其他答案说它对python没有特别的影响)

注2:我的观点不是提倡由于代码不可读而导致的错误放置的微优化。我想知道通过提供额外的长名称,我是否正在对执行速度做出某种妥协。

最佳答案

差异应该很小。但是我从 Python 2.7.6 和 Win7 64 位的第一个答案中得到了一些不同的结果。

>>> import timeit
>>> timeit.timeit(stmt="a = True", number=1000000000)
33.17448742396358
>>> timeit.timeit(stmt="bob_likes_very_much_to_eat_strawberry_on_friday_evening = True", number=1000000000)
32.47728300208675
>>> timeit.timeit(stmt="bob_likes_very_much_to_eat_strawberry_on_friday_evening_bob_likes_very_much_to_eat_strawberry_on_friday_evening_bob_likes_very_much_to_eat_strawberry_on_friday_evening_bob_likes_very_much_to_eat_strawberry_on_friday_evening_bob_likes_very_much_to_eat_strawberry_on_friday_evening_bob_likes_very_much_to_eat_strawberry_on_friday_evening_bob_likes_very_much_to_eat_strawberry_on_friday_evening_bob_likes_very_much_to_eat_strawberry_on_friday_evening_bob_likes_very_much_to_eat_strawberry_on_friday_evening = True", number=1000000000)
33.11944278143642

因此,它应该取决于实现和平台。

在内存使用方面,考虑到页面对齐,较长的变量名应该占用更多的空间。

另外,即使变量名很长,也要多花点时间和空间。如果它更有意义且易于理解,我一定会使用它。这比效率重要得多。

关于python - python中变量名与程序效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22951303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com