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

Bagaimanakah Peraturan LEGB Python Menentukan Skop Pembolehubah?

Barbara Streisand
Lepaskan: 2024-12-23 07:36:30
asal
661 orang telah melayarinya

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()
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan