是否有任何方法(hack)插入 Python 函数(def)通过引用返回结果,即使对于不可变类型也是如此?
提案申请(swap as subroutine):
def swap(a, b):<br/>
.....a,b = b,a
注意:
def swap(a, b):<br/>
.....return b,a
作为函数工作,不是问题的答案!
例如,有一个函数 random.shuffle(a) 就地工作。
我的想法是调用一个用 Fortran/C++ 编写的函数,然后通过 Python 调用它们。它确实有效,但也有缺点。
注意:
“lambda
”和“def
”(作为函数)都存在以下问题:a, b = swap(a, b)
这需要关心变量的顺序。在我的建议中(如果可能的话)子程序用作:swap(a, b)
因此无需关心变量的顺序。
最佳答案
Python 中的所有名称都是引用。不,没有可用的“out”引用(例如,在 C++ 意义上)。你需要传递一个可变对象,然后你可以在函数中改变它。但话又说回来,返回新值应该是首选方式。
关于Python:引用变量(hack),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7598346/