Python Academy · Pelajaran

Nilai Pulangan dan Skop

Fahami pernyataan return dan skop pemboleh ubah (setempat berbanding global).

Pelajaran 4 daripada 414 langkah

Nilai Pulangan dan Skop ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Python Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Python Academy merangkumi sejumlah 4 pelajaran.

Pengenalan

Memahami pernyataan return dan skop pembolehubah adalah asas untuk menulis fungsi Python yang boleh dijangka dan bebas pepijat.

Pernyataan return

return expr keluar daripada fungsi dan menghantar expr kembali kepada pemanggil. return tanpa nilai menghantar None.
def double(x):
    return x * 2
print(double(5))

Return Awal

Pelbagai pernyataan return adalah dibenarkan — pernyataan pertama yang dicapai akan menyebabkan fungsi keluar. Berguna untuk klausa pengawal.
def abs_val(x):
    if x < 0:
        return -x
    return x
print(abs_val(-7))

Skop Setempat

Pembolehubah yang dicipta di dalam fungsi adalah setempat — pembolehubah itu tidak wujud di luar fungsi.
def f():
    x = 10
    print(x)
f()
# print(x)  # NameError

Skop Global

Pembolehubah yang ditakrifkan pada aras modul adalah global. Fungsi boleh READ pembolehubah global tanpa mengisytiharkannya.
name = 'Alice'
def greet():
    print('Hello', name)  # reads global
greet()

Kata Kunci global

global x di dalam fungsi membolehkan anda WRITE kepada pembolehubah global. Gunakannya secara berhemat — kod menjadi sukar untuk difahami.
counter = 0
def increment():
    global counter
    counter += 1
increment()
print(counter)

Kata Kunci nonlocal

nonlocal x dalam fungsi bersarang membolehkan anda menulis kepada pembolehubah dalam skop yang melingkungi, tetapi bukan skop global.
def make_counter():
    count = 0
    def inc():
        nonlocal count
        count += 1
        return count
    return inc
c = make_counter()
print(c(), c())

Peraturan LEGB

Python menyelesaikan nama mengikut turutan: Setempat → Meliputi → Global → Terbina dalam. Inilah peraturan LEGB.
x = 'global'
def outer():
    x = 'enclosing'
    def inner():
        print(x)  # enclosing
    inner()
outer()

Mengembalikan Pelbagai Nilai

def f(): return 1, 2, 3 mengembalikan suatu tupel. a, b, c = f() menyahbungkusnya.
def stats(lst):
    return min(lst), max(lst), sum(lst)/len(lst)
lo, hi, avg = stats([1,2,3,4,5])
print(lo, hi, avg)

Mengembalikan Fungsi (Penutupan)

Suatu fungsi boleh mengembalikan fungsi lain. Fungsi dalam mengingati skop luar — inilah penutupan.
def make_adder(n):
    def adder(x):
        return x + n
    return adder
add5 = make_adder(5)
print(add5(3))

None berbanding Return yang Tiada

Sentiasa kembalikan None secara jelas apabila menandakan ketiadaan. Bergantung pada None tersirat adalah sah, tetapi bentuk jelas lebih mudah difahami.
def find(lst, val):
    for i, x in enumerate(lst):
        if x == val:
            return i
    return None
print(find([1,2,3], 9))

Semakan Pantas

Dalam peraturan LEGB, skop manakah yang diperiksa terakhir?

Ulang Kaji

return keluar daripada fungsi bersama suatu nilai. Pembolehubah setempat tidak tersebar ke luar. Gunakan global/nonlocal untuk menulis kepada skop luar. LEGB: Setempat, Meliputi, Global, Terbina dalam.

Teruskan

Syabas! Beralih ke pelajaran seterusnya untuk terus maju.
Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
76
Pelajaran
320

Soalan Lazim

Adakah pelajaran “Nilai Pulangan dan Skop” percuma?

Ya — teks penuh “Nilai Pulangan dan Skop” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Python Academy, tingkat taraf kepada CoddyKit PRO. Kursus Python Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Nilai Pulangan dan Skop”?

Fahami pernyataan return dan skop pemboleh ubah (setempat berbanding global). Anda berlatih Python Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Python Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Python Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Nilai Pulangan dan Skop” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mentakrif dan Memanggil Fungsi
  2. Argumen Lalai dan Kata Kunci
  3. args dan kwargs
  4. Nilai Pulangan dan Skop
← Kembali ke Python Academy