Python兩個變量交換值【同時賦值的原理】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Marvel__Dead/article/details/82945974
'''
提示:Python中變量保存的都是地址
同時賦值的原理就是,等號右側是一個元組
而元組定義后都會在內存中創建一個空間,並且保存元組中各個元素的地址,Python中每一個類型數據都是對象,也都是地址。
所以,當定義(a, b)元組后,實際上,內存中元組保存的元素是每個值a和b的地址
而等號左側之所以多個變量能得到值,是因為Python有一個獨特的賦值方式,那就是會把等號右側元組中值的地址,依次按索引把
地址賦值給左側的變量。
'''

見代碼:

# 測試元組的幾種定義方式
a, b = 10, 20
print("a的類型是:【%s】" % type(a))
print("b的類型是:【%s】" % type(b))
g_result01 = (a, b)
print("g_result01的類型是:【%s】" % type(g_result01))

g_result02 = a, b
print("g_result02的類型是:【%s】" % type(g_result02))

g_result03 = 30, 40
print("g_result03的類型是:【%s】" % type(g_result03))

g_b, g_a = a, b
print("g_a 和 b的地址是否相同:【{0}】".format(g_a is g_result02[1]))
print("g_b 和 a的地址是否相同:【{0}】".format(g_b is g_result02[0]))

輸出為:

a的類型是:【<class 'int'>】
b的類型是:【<class 'int'>】
g_result01的類型是:【<class 'tuple'>】
g_result02的類型是:【<class 'tuple'>】
g_result03的類型是:【<class 'tuple'>】
g_a 和 b的地址是否相同:【True】
g_b 和 a的地址是否相同:【True】

猜你喜欢

转载自blog.csdn.net/Marvel__Dead/article/details/82945974
今日推荐