SORU
7 Ocak 2009, ÇARŞAMBA


Ne `__name = = __ ve__ana " __":`?

if __name__ == "__main__": ne yapar?

# Threading example
import time, thread

def myfunction(string, sleeptime, lock, *args):
    while 1:
        lock.acquire()
        time.sleep(sleeptime)
        lock.release()
        time.sleep(sleeptime)
if __name__ == "__main__":
    lock = thread.allocate_lock()
    thread.start_new_thread(myfunction, ("Thread #: 1", 2, lock))
    thread.start_new_thread(myfunction, ("Thread #: 2", 2, lock))

CEVAP
7 Ocak 2009, ÇARŞAMBA


Python yorumlayıcısı bir kaynak dosyasını okur, kodun içinde bulunan tüm yürütür. Kodu çalıştırmadan önce, birkaç özel değişkenleri tanımla. Eğer python yorumlayıcısı o modülü (kaynak dosya) ana program olarak çalışıyorsa, örneğin, __name__ özel değişken değeri "__main__" ayarlar. Eğer bu dosya başka bir modülünden alınmakta, __name__ modülün adı olacaktır.

Senaryonu durumunda, ana fonksiyonu olarak yürütülen, örneğin dediğin gibi bir şey olduğunu varsayalım

python threading_example.py

komut satırında. Özel değişkenleri tanımladıktan sonra import deyimini yürütmek ve bu modülleri yükler. Sonra def blok, işlev nesne oluşturma ve fonksiyon, nesneye işaret eden bir değişken myfunction denilen oluşturma değerlendirecektir. Sonra if okuyun ve __name__ blok orada gösterilen çalıştırır yani "__main__" eşit miktarda yok olduğunu göreceksiniz.

Bunun için nedenlerinden biri, bazen doğrudan çalıştırılabilir bir modül (**14 dosya) yazılmasıdır. Alternatif olarak başka bir modülde içe kullanılabilir. Yaparak ana kontrol edebilirsiniz var o kod sadece çalıştırmak çalıştırmak istediğiniz modülü olarak bir program ve yok çalıştırmak ne zaman biri sadece istediği için alma modülü ve arama fonksiyonları kendilerini.

Bazı ekstra bilgi için this page bkz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bobbylee Budde

    Bobbylee Bud

    13 ŞUBAT 2011
  • Hak5

    Hak5

    7 EYLÜL 2005
  • PlugResearch

    PlugResearch

    22 Mart 2006

İLGİLİ SORU / CEVAPLAR