如何通過引用傳遞變量?Python文檔似乎不清楚參數(shù)是通過引用還是值傳遞,以下代碼生成未更改的值'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個贊
想想通過賦值而不是通過引用/通過值傳遞的東西。這樣,只要您了解正常分配期間發(fā)生的情況,就可以清楚地知道發(fā)生了什么。
因此,將列表傳遞給函數(shù)/方法時,會將列表分配給參數(shù)名稱。附加到列表將導致列表被修改。重新分配函數(shù)內的列表不會更改原始列表,因為:
a = [1, 2, 3]
b = a
b.append(4)
b = ['a', 'b']
print a, b # prints [1, 2, 3, 4] ['a', 'b']
由于無法修改不可變類型,它們看起來像是通過值傳遞 - 將int傳遞給函數(shù)意味著將int賦給函數(shù)參數(shù)。您只能重新分配,但不會更改原始變量值。
添加回答
舉報
0/150
提交
取消