Python:引用变量(hack)

标签 python function immutability mutable subroutine

是否有任何方法(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/

相关文章:

Python - 使用 OpenCV 将图像保存在文件中后,窗口中的图像外观有所不同

python - 在 pythonanywhere 上渲染 django-bootstrap-datepicker-plus 小部件

c++函数参数char指针和字符串

具有两个函数的 JavaScript 闭包作用域

c - "error: subscripted value is neither array nor pointer nor vector",但为什么呢?

Swift 使方法参数可变?

python - 获取要在列表上使用的数据帧的索引

python - Pandas dataframe 替换特定位置的字符,而不更改其他位置的相似字符

javascript - React redux - 更新状态中的嵌套数组

java - Java 8 流是不可变的吗?