Python付与の一般的な意味は引用です
944 ワード
困った答えを探しているうちにid()id()が対応するメモリアドレスを表していることがわかりました
ケース1:
id(2)とid(3)を入力し、出力結果を比較してください
比較によると、a=1 id(a)とid(1)は同一の同理id(b)とid(2)は同一のb=3である.ここで付与値はid(b)の値を変更し、2ではなく3 aまたはbを指し、Pythonでは1つの値、例えば1 2(文字タイプにかかわらず)を指す.
ここでは、b=2が39355308を指して印刷されるので2であるのでprint list[1]またはprint bおよびprint 2の効果は同等であるがprint list[1]2を直接指すこの値39355308 print bは間接的に2を指すこの値39355308 bは名前でこの値を参照するので、b=3 print bを名前として再付与すると3の値bが新しい値である3の値print list 1[1]が得られるのは39355308である
一方print list 1はprint list 1[0]とprint list 1[1]の集合であるため、出力結果は[1,2]であり[1,3]ではない.
list 1=[a,b]を再定義してから出力する[1,3]
ケース1:
>>> a=1
>>> b=2
>>> id(1)
39355320
>>> id(a)
39355320
>>> id(b)
39355308
>>> b=3
>>> id(b)
39355296
>>>
id(2)とid(3)を入力し、出力結果を比較してください
比較によると、a=1 id(a)とid(1)は同一の同理id(b)とid(2)は同一のb=3である.ここで付与値はid(b)の値を変更し、2ではなく3 aまたはbを指し、Pythonでは1つの値、例えば1 2(文字タイプにかかわらず)を指す.
>>> a=1
>>> b=2
>>> list1=[a,b]
>>> print list1
[1, 2]
>>> b=3
>>> print list1
[1, 2]
>>>
ここでは、b=2が39355308を指して印刷されるので2であるのでprint list[1]またはprint bおよびprint 2の効果は同等であるがprint list[1]2を直接指すこの値39355308 print bは間接的に2を指すこの値39355308 bは名前でこの値を参照するので、b=3 print bを名前として再付与すると3の値bが新しい値である3の値print list 1[1]が得られるのは39355308である
一方print list 1はprint list 1[0]とprint list 1[1]の集合であるため、出力結果は[1,2]であり[1,3]ではない.
list 1=[a,b]を再定義してから出力する[1,3]