Python文档似乎不清楚参数是通过引用还是值传递,以下代码生成未更改的值'Original'
class PassByReference:
def __init__(self):
self.variable = 'Original'
self.change(self.variable)
print(self.variable)
def change(self, var):
var = 'Changed'
Run Code Online (Sandbox Code Playgroud)
有什么我可以通过实际参考传递变量吗?
码:
>>> a = 1
>>> b = 2
>>> l = [a, b]
>>> l[1] = 4
>>> l
[1, 4]
>>> l[1]
4
>>> b
2
Run Code Online (Sandbox Code Playgroud)
我想要反而看到的是当我将l [1]设置为等于4时,变量b变为4.
我猜测在处理基元时,它们是按值复制的,而不是通过引用复制的.我经常看到人们遇到物体问题,需要了解深层副本等.我基本上想要相反.我希望能够在列表中存储对基元的引用,然后能够通过使用其实际变量名称b或列表中的引用为该变量分配新值l[1].
这可能吗?