我如何在Python中模拟等效的pass-by-reference?

sib*_*mas 1 python integer mutable pass-by-reference

我基本上需要的是一个可变整数,它可以完成下面的等价,而不必求助于使用单个元素列表.

下面是一个人为的代码示例,它代表了我实际用例的本质[1]

>>> a = [5]  
>>> b = [77]  
>>> def swap(num1, num2):  
...     temp = num1[0]  
...     num1[0] = num2[0]  
...     num2[0] = temp  
>>> swap(a, b)  
>>> a  
[77]  
>>> b  
[5]  
Run Code Online (Sandbox Code Playgroud)

[1]我的实际用例更接近于这一点 - > 在Tkinter中使用按钮调用函数后返回一个值
我需要从与Tkinter小部件关联的回调函数返回一个值,我想避免使用全局变量.

San*_*use 5

我害怕你必须上课.Python是一种高级语言,不支持C(和C++)中存在的指针恶作剧,所以你需要使用一个包含整数值的对象,然后你可以修改它.

  • class BoxedInteger()...,到处都会非常讨厌*else*.交换的pythonic方式只是"a,b = b,a`` (5认同)