如何通过引用传递变量?Python文档似乎不清楚参数是通过引用还是值传递,以下代码生成未更改的值'Original'class PassByReference:
def __init__(self):
self.variable = 'Original'
self.change(self.variable)
print(self.variable)
def change(self, var):
var = 'Changed'有什么我可以通过实际参考传递变量吗?
5 回答
江户川乱折腾
TA贡献1851条经验 获得超5个赞
想想通过赋值而不是通过引用/通过值传递的东西。这样,只要您了解正常分配期间发生的情况,就可以清楚地知道发生了什么。
因此,将列表传递给函数/方法时,会将列表分配给参数名称。附加到列表将导致列表被修改。重新分配函数内的列表不会更改原始列表,因为:
a = [1, 2, 3]
b = a
b.append(4)
b = ['a', 'b']
print a, b # prints [1, 2, 3, 4] ['a', 'b']
由于无法修改不可变类型,它们看起来像是通过值传递 - 将int传递给函数意味着将int赋给函数参数。您只能重新分配,但不会更改原始变量值。
添加回答
举报
0/150
提交
取消