我們知道在函數(shù)中如果對(duì)形參使用賦值語句是不會(huì)修改實(shí)參的,但是如果傳入的實(shí)參是可變類型,而且使用方法修改了形參,那么實(shí)參也會(huì)被修改。
def demo_04(lo_list):
lo_list.append(5)
print(lo_list)
gl_list = [1, 2, 3, 4]
demo_04(gl_list) # 輸出為:[1, 2, 3, 4, 5]
print(gl_list) # 輸出為:[1, 2, 3, 4, 5]
在平常我們使用“+=”時(shí),例如:a += a表示先進(jìn)行a + a操作,再將a + a的和賦值給a,即a = a + a。但是在python中需要注意當(dāng)列表使用“+=”時(shí),相當(dāng)于使用了extend()方法擴(kuò)展列表,而不是先求和再賦值。
def demo_04(lo_list):
lo_list += lo_list
print(lo_list)
gl_list = [1, 2, 3, 4]
demo_04(gl_list) # 輸出為:[1, 2, 3, 4, 1, 2, 3, 4]
print(gl_list) # 輸出為:[1, 2, 3, 4, 1, 2, 3, 4]
通過輸出結(jié)果可看出在函數(shù)中 列表執(zhí)行該步代碼lo_list += lo_list,并不是先求和再賦值,而是相當(dāng)于使用了extend()方法。