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

  • jat4011

    jat4011

    16 EKİM 2010
  • Photoshop Tutorials

    Photoshop Tu

    22 HAZİRAN 2011
  • UlyssesForever's channel

    UlyssesForev

    28 ŞUBAT 2012

İLGİLİ SORU / CEVAPLAR