語法:Python中的可覆蓋物件與不可覆蓋物件

葉赫那拉坤發表於2016-11-12

python中的物件按照覆蓋方式可以分為兩類:可覆蓋物件和不可覆蓋物件:

  • 可覆蓋物件:list,dictionary
  • 不可覆蓋物件:int,string,float,tuple

可覆蓋物件一旦建立後還可以改變,響應的指向同一個物件引用的變數的內容隨之改變;不可覆蓋物件一旦建立後就不可以改變,這兒作了詳細的解釋。


程式碼例項

對於可覆蓋物件

@breakingcoder
def deleteFruit(mylist):
    if mylist is not None:
        mylist.remove(mylist[0])
fruits = ['apple','peal','banana','orange']
deleteFruit(fruits)
print(fruits)

上述程式碼的執行結果為:

['peal', 'banana', 'orange']

由於列表是可覆蓋物件,函式中對列表的改動會直接影響到列表物件的變動。

對於不可覆蓋物件

@breakingcoder
def addNum(mynumber):
    mynumber += 2
number = 8
addNum(number)
print(number)

上述程式碼的執行結果為:

8

由於整型是不可覆蓋物件,函式中對物件引用變數的改動世界上不會對原有物件進行改動,而是指向了新建立的物件,隨著函式的結束,區域性變數也就失去了意義。number依舊指向物件8的地址。


相關文章