gpt4 book ai didi

Python效率: is it better to create new variables and assign tasks to it rather than keep on using same variable?

转载 作者:行者123 更新时间:2023-11-30 22:46:18 24 4
gpt4 key购买 nike

如果这个问题以前被问过很多次,我深表歉意,但我可能使用了错误的术语来寻找答案。

我使用的是 Rasberry Pi,所以我关心效率。在 Python 脚本中,我有一个名为 foo 的变量,我需要删除它,然后列出它。到目前为止,我的代码如下所示:

 foo = "hello, world"
foo = foo[1:-1] #strip away the quotation marks.
foo = foo.split(", ") #make a list of it

我的问题是:如果我继续使用相同的变量可以吗还是应该创建新的变量?或者我应该做这样的事情:

foo = "hello, world"
bar = foo[1:-1]
fubar = bar.split(", ")

此外,foo 变量每秒多次获取不同的字符串。我的意思是,对于该变量的每个实例,都有一个新的内存分配,但这是否意味着我应该继续使用相同的变量?

感谢您的回答,再次为愚蠢的问题道歉。

最佳答案

这很大程度上是一种风格选择。使用单一名称会稍微更有效率,并且避免在不再需要临时名称后保留它们,但这通常是微不足道的差异。函数局部变量(无论如何在 CPython 中)只是作为函数作用域的指针存储在数组中;存储三个指针而不是一个指针并不是一个有意义的区别,除非它最终使一个巨大的对象保持事件状态。

当存储数据的含义发生变化时,坚持使用新名称。特别是,在一个长函数中为完全不同类型或用途的数据重用一个变量是一种不好的形式(当它在第 1-20 行中具有一种含义,而在第 40-50 行中具有不同的含义时,它会让维护者感到困惑)。

在您的具体情况下,存储的前两个值似乎相关;重复使用该名称可能没问题。不过,我对拆分后重用该名称持谨慎态度;切换变量的类型通常是不好的形式(异常(exception)是当您对逻辑上表示值序列的 str 进行初始解析时,可能就是这种情况)。

基本上,不要造成不必要的困惑。

旁注:当我看到 foo.split(", ") 时,那就是代码味道。如果您使用 CSV 数据,请使用 the csv module ,不要使用您自己的带有可怕边缘情况和错误的 CSV 解析器。

关于Python效率: is it better to create new variables and assign tasks to it rather than keep on using same variable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40913419/

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