python中的的各型別變數及作為引數的特點

2021-08-28 20:39:59 字數 1107 閱讀 1943

概念:

所有的變數都可以理解為記憶體中的乙個物件的「引用」。型別是屬於物件的,而不是變數。而物件有兩種,「可更改」與「不可更改」物件。在python中,strings,tuples和numbers是不可更改的物件,而list,dict,set等則屬於可以修改的物件。

下面來看下例子(numbers與list):

def foo(a):

print("foo_in:", a, id(a))

a += 1

print("foo_in:",a)

a = 1

foo(a)

print("foo_out:",a)

'''輸出:

foo_in: 1 1723752672

foo_in: 2 1723752704

foo_out: 1 1723752672

'''

def foo(a):

print("foo_in:",a,id(a))

a = [1]

foo(a)

print("foo_out:",a,id(a))

'''輸出:

foo_in: [1, 2] 2240850668936

foo_out: [1, 2] 2240850668936

'''

可知,1、在在執行完a+=1之後,a引用中儲存的值,即記憶體位址發生變化,由原來1物件所在的位址變為了2 這個實體物件所在的記憶體位址2、第二個例子a引用的記憶體值就不會發生改變

當乙個引用傳遞給函式的時候,函式會自動複製乙個引用,這個函式引用跟原來的那個引用沒有關係,(a第乙個例子中函式引用指向乙個不可變物件,操作物件(也就是改變了指向的記憶體),當函式返回時跟原來的引用並沒有影響。(b第二個例子,函式內引用指向的是可變物件,對它的操作就和定位了指標位址一樣,在記憶體裡進行修改。

再說乙個例子(元組與列表):

元組中的不可變值得是元素值不可變,但其元素可以為列表,當元素為列表時,對於這個不可變實際上是說這個元素引用的位址不可變,對列表的操作並不改變引用的位址。

python中的變數型別

變數定義 所謂變數實際就是一塊特定的記憶體位址,定義乙個變數就是把變數的名字和記憶體位址繫結,以後就可以用變數的名字訪問記憶體位址了。和c語言不同,python中不需要事先宣告變數。變數的宣告和分配是在賦值操作 operator 時自動完成的,比如a 1,自動宣告a為數值型變數,a的值為1 a 1 ...

python中的 變數型別(一)

連線c語言 你可能學過c語言,就拿c語言來說,它的變數型別總體上有,如 整型 浮點型 字元型等,還可以在每個型別下細化,比如整型下面還有長整型等等,很繁瑣,在使用變數的時候必須要先定義,後使用,稍有不慎,就掛掉,這,讓你很憤怒,讓你藍瘦香菇,為什麼,正是因為c語言的極度 嚴謹。話說回來,python...

python變數 型別及轉換

python變數 python變數就是指 在執行過程中可能會發生變化的量,這個可能發生變化的量被稱為變數。通常情況下 變數名稱等於變數值。那麼這個變數需要滿足那些規則呢?讓我們一起來學習。變數又稱為識別符號,在python中變數滿足下列規則 1 變數名稱必須使用有效字元,有效字元可以是英文本母 英文...