亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Masalah pemindahan nilai fungsi

Mari kita lihat contoh dahulu:

# -*- coding: UTF-8 -*-
def chagne_number( b ):
    b = 1000
b = 1
chagne_number(b)
print( b )

Hasil keluaran akhir ialah:

1

Sesetengah orang di sini mungkin mempunyai soalan, mengapa nilai b tidak diubah melalui fungsi chagne_number? Mengapa tiada perubahan dan hasil keluaran masih 1 Masalah ini dibincangkan dalam banyak bahasa pengaturcaraan, dan penjelasan prinsipnya adalah serupa.

Ini terutamanya mengenai pemindahan parameter fungsi, iaitu objek jenis Jenis data asas dalam Python juga telah diperkenalkan sebelum ini. Objek jenis ini boleh dibahagikan kepada jenis yang boleh diubah dan jenis yang tidak boleh diubah Dalam Python, rentetan, integer, jenis titik terapung dan tuple ialah objek yang tidak boleh ditukar, manakala senarai, dict, dsb. ialah objek yang boleh diubah.

Contohnya:

Jenis tidak boleh ubah

: Tugasan pembolehubah a = 1 sebenarnya menjana objek integer 1, dan kemudian pembolehubah a menunjuk kepada 1. Apabila a = 1000, ia sebenarnya menjana objek integer lain 1000, dan kemudian menukar nilai Mata kepada, tidak lagi menunjuk kepada objek integer 1, tetapi mata kepada 1000, dan 1 terakhir akan dibuang

Jenis boleh ubah

: penugasan pembolehubah a = [1,2,3,4,5,6 ], iaitu untuk menjana senarai objek, terdapat 6 elemen dalam senarai, dan pembolehubah a menunjuk ke senarai, a[2] = 5 mengubah nilai elemen ketiga senarai a di atas. Ia tidak mengubah hala a, tetapi secara langsung mengubah suai nilai elemen dalam senarai.

ca71dacdee25f4d37deb9d0275fb3ba.pngIni juga akan menjejaskan penghantaran parameter dalam fungsi:

Jenis tidak berubah

: Hantaran nilai seperti C++, seperti integer, rentetan dan tupel. Sebagai contoh, fun(a) hanya memindahkan nilai a dan tidak menjejaskan objek itu sendiri. Sebagai contoh, mengubah suai nilai keseronokan dalam(a) hanya mengubah suai objek yang disalin dan tidak menjejaskan objek itu sendiri.

Jenis boleh tukar

: serupa dengan hantaran rujukan c++, seperti senarai dan kamus. Sebagai contoh, keseronokan(a), a sebenarnya dihantar kepadanya Selepas pengubahsuaian, keseronokan luar juga akan terjejas Oleh itu, dalam contoh pertama, b = 1, objek integer 1 dicipta, dan pembolehubah b menunjuk kepada Objek ini diperoleh, dan kemudian apabila melepasi fungsi chagne_number, pembolehubah b disalin mengikut nilai Apa yang diluluskan hanyalah nilai b, dan tidak menjejaskan b itu sendiri. Untuk butiran, anda boleh melihat contoh yang diubah suai dan mempunyai pemahaman yang lebih baik melalui hasil cetakan.

# -*- coding: UTF-8 -*-
def chagne_number( b ):
    print('函數(shù)中一開始 b 的值:{}' .format( b ) )
    b = 1000
    print('函數(shù)中 b 賦值后的值:{}' .format( b ) )
b = 1
chagne_number( b )
print( '最后輸出 b 的值:{}' .format( b )  )
Hasil cetakan:

函數(shù)中一開始 b 的值:1
函數(shù)中 b 賦值后的值:1000
最后輸出 b 的值:1

Sudah tentu, jika parameter adalah jenis yang boleh diubah, maka selepas memanggil fungsi ini, nilai asal juga akan ditukar Contoh khusus adalah seperti berikut:

# -*- coding: UTF-8 -*-
def chagne_list( b ):
    print('函數(shù)中一開始 b 的值:{}' .format( b ) )
    b.append(1000)
    print('函數(shù)中 b 賦值后的值:{}' .format( b ) )
b = [1,2,3,4,5]
chagne_list( b )
print( '最后輸出 b 的值:{}' .format( b )  )

Hasil output:

函數(shù)中一開始 b 的值:[1, 2, 3, 4, 5]
函數(shù)中 b 賦值后的值:[1, 2, 3, 4, 5, 1000]
最后輸出 b 的值:[1, 2, 3, 4, 5, 1000]
.
Meneruskan pembelajaran