SORU
15 Kasım 2008, CUMARTESİ


Python Kapsayan Kurallar kısa Açıklama

Netam olarakbu Python kuralları incelemek?

Bazı kod var:

code1
class Foo:
   code2
   def spam.....
      code3
      for code4..:
       code5
       x()

Neredexbulundu? Bazı olası seçenekler listesini yukarıda vardır:

  1. Kapsayan bir kaynak dosyası
  2. Sınıf ad
  3. İşlev tanımında
  4. Değişken dizin değişken
  5. Döngü içinde

Ayrıca fonksiyon spam başka bir yerde geçirildiğinde yürütme sırasında bağlamı var. Ve belki de lambda biraz farklı geçiş fonksiyonları?

Basit bir başvuru ya da bir yere algoritması vardır. Ara Python programcıları için kafa karıştırıcı bir dünya.

CEVAP
15 Kasım 2008, CUMARTESİ


Aslında, bir özlü Learning Python, 3rd. Ed. Python Kapsam çözümlemesi için kural. (Bu kurallar değişken adları, nitelikleri değil özgüdür. Nokta olmadan başvuru, bu kurallar uygulanır)

LEGB Kural.

LYerel İsimler bir işlev içinde herhangi bir şekilde atanan (def lambda)), ve global bir işlev içinde bildirilen.

EFonksiyon yerli — yerel kapsam ve kapsayan tüm fonksiyonları Adı (def lambda), iç ve dış gelen bitiriyorum.

G, (Modül) — İsimleri üst düzey bir modül dosyası, atanmış veya genel dosya içinde def bildirilen küresel.

BYerleşik (Python) — İsimleri dahili isim modülünde önceden atanmış: open,range,SyntaxError,...

Yani, bu durumda

code1
class Foo:
   code2
   def spam.....
      code3
      for code4..:
       code5
       x()

Döngü için kendi ad yok. LEGB sırada, kapsamları olurdu

L : geçerli def. yerel

E : Kapalı fonksiyon da kapsayan fonksiyonlar def spam başka bir tanımlama oldu

G : Global. Herhangi bir küresel modülünde ilan vardı?

B : Herhangi bir yerleşik x() Python.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • fufko

    fufko

    27 ŞUBAT 2006
  • hans peder sahl

    hans peder s

    22 Temmuz 2009
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011