我对性能有疑问。
如果我有一个案例,当我将一个可变对象传递给一个函数并且我对该对象进行更改时,我知道在python中它将更改该值,并且所有指针都将指向已更改的值。
但是编写代码的正确方法是什么?
我应该使用return
语句并重新分配指向函数输出的指针,以显示读取正在更改的代码的那个吗?
如果你预先指定了一个指向同一个已经指向的内存的指针,这对性能有多大的影响?
谢谢!
答案 0 :(得分:7)
应该使用return语句并重新分配指向函数输出的指针,以显示读取它正被更改的代码的那个?
不,这会让更多混淆。如果你要更改一个对象,你应该把它变得明显,而明显的一部分就是不返回同一个对象。以现有的Python API为灵感:
>>> import random
>>> a = [1, 2, 3]
>>> random.shuffle(a)
random.shuffle
没有返回任何内容,所以它唯一可以做的就是将列表改组。
表现与此无关。
答案 1 :(得分:4)
a)对性能没有显着影响。
b)如果你的函数接受一个对象并对其进行更改,那么这是一个副作用,因此你不应该return
该对象。这会让人感到困惑和误导,因为它意味着输入与输出不同。
c)如果您认为编写的代码只是为了向读者提供代码信息,请使用注释。