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

  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011
  • technodromeband's channel

    technodromeb

    28 NİSAN 2011

İLGİLİ SORU / CEVAPLAR