Python_變量、對象以及函數傳參解析

變量和對象

在Python中,一個變量可以說是內存中的一個對象的“標籤”或“引用”。

比如a = 1

在這裏插入圖片描述

現在變量a指向了內存中的一個int型的對象(a相當於對象的標籤)。如果給a重新賦值,那麼標籤a將會移動並指向另一個對象,如下圖所示a = 2

在這裏插入圖片描述

原來的值爲1的int型對象仍然存在,但我們不能再通過a這個標識符去訪問它了(當一個對象沒有任何標籤或引用指向它時,它就會被自動釋放)。如果我們把變量a賦值給另外一個變量b,我們只是給當前內存中對象增加一個“標籤”而已b = a

在這裏插入圖片描述

所以在Python中變量只是一個標籤或者標識符,它指向內存中的對象。故變量並沒有類型,類型是屬於對象的,這也是Python中的變量可以被任何類型賦值的原因。

可變對象和不可變對象

不可變對象:numbers,strings和tuples是不可變對象。

可變對象:list,dict是可變對象。

函數傳參

在Python中參數傳遞時,對於不可變的對象,是傳值方式;對於可變對象,是傳地址的方式。

接下來我們看兩個例子:

def foo(arg):
	arg = 6
	print(arg)

x = 8
foo(x)    # 輸出6
print(x)  # 輸出8
def foo(arg):
	arg.append(6)

x = [8, 2]
print(x)   # 輸出[8, 2]
foo(x)
print(x)   # 輸出[8, 2, 6]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章