python變數傳遞 python變數傳遞

2021-10-11 12:45:29 字數 2285 閱讀 4417

python變數傳遞

數值**

num_1 = 123

num_2 = num_1

# 改變num_2值前

print 'num_1 = , num_2 = '.format(num_1, num_2)

num_2 = 0

# 改變num_2值後

print 'num_1 = , num_2 = '.format(num_1, num_2)

輸出num_1 = 123, num_2 = 123

num_1 = 123, num_2 = 0

結論數值變數之間的是按值傳遞。

字串**

str_1 = 'hello python'

str_2 = str_1

# 改變str_2值前

print 'str_1 = , str_2 = '.format(str_1, str_2)

str_2 = 'hello'

# 改變str_2值後

print 'str_1 = , str_2 = '.format(str_1, str_2)

輸出str_1 = hello python, str_2 = hello python

str_1 = hello python, str_2 = hello

結論字串變數之間也是按值傳遞。

鍊錶**

l_1 = [1, 2, 3, 4]

l_2 = l_1

print 'l_1 = , l_2 = '.format(l_1, l_2)

l_2[0] = 100 # 改變l_2的第乙個元素

print 'l_1 = , l_2 = '.format(l_1, l_2)

l_2 = [1,1,1] # 改變l_2的全部元素

print 'l_1 = , l_2 = '.format(l_1, l_2)

輸出l_1 = [1, 2, 3, 4], l_2 = [1, 2, 3, 4]

l_1 = [100, 2, 3, 4], l_2 = [100, 2, 3, 4]

l_1 = [100, 2, 3, 4], l_2 = [1, 1, 1]

結論從上面的輸出結果可以看到,l_1和l_2的作用類似於c/c++中的指標,l_2 = l_1的作用相當於l_2和l_1指向了同一塊記憶體,內容都為[1, 2, 3, 4]。當l_2[0] = 100時,l_1中的第乙個元素也被改變了。l_2 = [1,1,1]使得l_2指向了另外一塊記憶體,也就不會對l_1的內容造成影響。

字典**

d_1 =

d_2 = d_1

print 'd_1 = , d_2 = '.format(d_1, d_2)

d_2['c'] = 10

print 'd_1 = , d_2 = '.format(d_1, d_2)

d_2 =

print 'd_1 = , d_2 = '.format(d_1, d_2)

輸出d_1 = , d_2 =

d_1 = , d_2 =

d_1 = , d_2 =

結論輸出結果顯示dict和list的性質一樣,直接賦值時是類似於c++中的按引用傳遞。

物件**

class point:

def __init__(self, x, y):

self.x = x

self.y = y

def __str__(self):

return ''.join(['x = ', str(self.x), ' ', 'y = ', str(self.y)])

p_1 = point(12,34)

p_2 = p_1

print 'p_1: ; p_2: '.format(p_1, p_2)

p_2.x = 122

print 'p_1: ; p_2: '.format(p_1, p_2)

p_2 = point(89, 978)

print 'p_1: ; p_2: '.format(p_1, p_2)

輸出p_1: x = 12 y = 34; p_2: x = 12 y = 34

p_1: x = 122 y = 34; p_2: x = 122 y = 34

p_1: x = 122 y = 34; p_2: x = 89 y = 978

結論自定義物件在賦值過程中也是按引用傳遞。

總結python中數值,字串在賦值過程中是按值傳遞;list、dict、物件在賦值過程中預設按引用傳遞,如果需要按值傳遞,則可以使用到copy模組下的copy和deepcopy函式。

python傳遞變數 python變數傳遞

python變數傳遞 數值 num 1 123 num 2 num 1 改變num 2值前 print num 1 num 2 format num 1,num 2 num 2 0 改變num 2值後 print num 1 num 2 format num 1,num 2 輸出num 1 123,...

python變數傳遞 Python引數傳遞

在 python 中,型別屬於物件,變數是沒有型別的 a 1,2,3 a runoob 以上 中,1,2,3 是 list 型別,runoob 是 string 型別,而變數 a 是沒有型別,她僅僅是乙個物件的引用 乙個指標 可以是指向 list 型別物件,也可以是指向 string 型別物件。可更...

python中var是什麼變數 Python 變數

1.python的變數是什麼 變數是用來儲存電腦程式中的資訊,唯一的目的是將資料儲存在記憶體中。2.python變數的組成 變數由字母 數字 下劃線組成 變數的第一位不能是數字,可以是字母或下劃線 python中的關鍵字不能作為變數。python中的關鍵字 and as assert break c...