Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Peraturan LEGB Python Menentukan Skop Pembolehubah?

Bagaimanakah Peraturan LEGB Python Menentukan Skop Pembolehubah?

Barbara Streisand
Barbara Streisandasal
2024-12-23 07:36:30713semak imbas

How Does Python's LEGB Rule Determine Variable Scope?

Peraturan LEGB Python: Menyahmistikan Peraturan Skop

Peraturan skop Python, selalunya menjadi punca kekeliruan, boleh difahami dengan mudah melalui peraturan LEGB.

KAKI Peraturan

Peraturan LEGB menyediakan algoritma yang jelas untuk menentukan ketersediaan pembolehubah dalam skop tertentu:

  • L (Tempatan): Pembolehubah ditakrifkan dalam fungsi atau ungkapan lambda.
  • E (Fungsi melampirkan): Pembolehubah ditakrifkan dalam fungsi melampirkan, dari dalam ke luar.
  • G (Global): Pembolehubah ditakrifkan pada tahap modul atau diisytiharkan global dalam fungsi.
  • B (Terbina dalam): Pembolehubah pra-diberikan daripada nama terbina dalam Python modul.

Contoh

Pertimbangkan kod berikut:

class Foo:
    def spam():
        for var in []:
            x()

Menggunakan peraturan LEGB, kita boleh menentukan skop pembolehubah x:

  • L: Tiada. x tidak ditakrifkan secara setempat dalam fungsi spam.
  • E: Tiada. Fungsi spam tidak bersarang dalam fungsi lain.
  • G: Ya. Jika x ditakrifkan pada peringkat modul, ia akan tersedia dalam fungsi spam.
  • B: Ya. Jika x ialah pembolehubah terbina dalam (cth., fungsi Python), ia boleh diakses.

Dalam contoh ini, x akan ditemui jika ia ditakrifkan pada peringkat modul atau Python terbina dalam.

Atas ialah kandungan terperinci Bagaimanakah Peraturan LEGB Python Menentukan Skop Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn