python传参_Python的赋值和传参
1. python中的賦值過程
python賦值語句a = XXX,實際上就是a保存了XXX的存儲地址。
python對象類型:
不可變類型對象:整數、小數、復數、字符串、元組
可變類型:列表、字典、集合
不可變類型對象
更改不可變類型對象會改變數據存儲的地址,例如:
a = 123
print("a存儲的地址為", id(a))
b = a
print("b存儲的地址為", id(b))
a = 100
print("改變之后a的地址為", id(a))
輸出結果:
a存儲的地址為 4401750912
b存儲的地址為 4401750912
改變之后a的地址為 4401750176
由此可見,改變前后a的地址發生了改變,而b所指向的地址沒有發生改變。
可變類型對象
更改可變類型對象不會改變數據存儲的地址,例如:
li = [1, 2, 3]
print(id(li))
print(id(li[0]))
print(id(li[1]))
print(id(li[2]))
li[0] = 10
print("")
print(id(li))
print(id(li[0]))
print(id(li[1]))
print(id(li[2]))
輸出結果:
li存儲的地址為 4338319176
li第一個元素存儲的地址為 4337198144
li第二個元素存儲的地址為 4337198176
li第三個元素存儲的地址為 4337198208
更改li的第一元素之后:
li存儲的地址為 4338319176
li第一個元素存儲的地址為 4337198432
li第二個元素存儲的地址為 4337198176
li第三個元素存儲的地址為 4337198208
由此可見,li的地址沒有發生改變,但是li的第一個元素的地址發生了改變。
2. python中函數的傳遞參數過程
函數的參數傳遞過程分為兩種情況:
傳值:形參和實參分配不同的內存地址,在調用時將實參的值傳給實參,在這種情況下,在函數內修改形參并不會影響到實參。
傳引用:實參的地址傳遞給形參的過程,函數內修改會直接導致實參發生變化。
傳值
傳遞的參數為不可變類型對象,則傳遞的過程為傳值。
def add(num):
num += 1
x = 1
add(x)
print(x)
輸出結果:
1
傳引用
傳遞的參數為可變類型對象,則傳遞的過程為傳引用。
def add(li):
li[0] += 1
x = [1, 2, 3]
add(x)
print(x)
輸出結果:
[2, 2, 3]
python中函數的參數傳遞過程,實際上就是實參賦值給形參的過程。
總結
以上是生活随笔為你收集整理的python传参_Python的赋值和传参的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: osgi框架和spring区别_最新10
- 下一篇: websocket python爬虫_p