Bugün ne öğrendim? 22 Python 6

Bugün Decorator diye bir konuyla tanıştım, benim için enteresan bir deneyimdi. Biraz anlamakta güçlük çektim açıkçası, şimdi biraz neymiş bu konu bakalım.

Decorator nedir?

fonksiyon tanımlayan fonksiyon oluşturmak ve daha sonra bu fonksiyonu her çağırdığımızda bir değişkene yeni fonksiyon tanımlamış olmak. Burada, kullanıcının kendi fonksiyonunu tanımlaması dahi mümkün hale geliyor. (Bu cümleyi Güray Yıldırım’ın 2012’de yazdığı yazıdan aldım, çok anlaşılır geldi. Link )

Şimdi bir örnekle bakalım

def hello(name='Jose'):

    def greet():
        return '\t This is inside the greet() function'

    def welcome():
        return "\t This is inside the welcome() function"

    if name == 'Jose':
        return greet
    else:
        return welcome

x = hello()
print(x())

Ekran Görüntüsü

Şimdi ise bana çok gizemli gelen bir konuyla karşınızdayım. Name ve main.

Bu hani şu alt çizgili olanlar 🙂

 if __name__ == "__main__":

Bazen bir modülden içe aktarırken, isteyip istemediğinizi bilmek istersiniz.
bir modül işlevi içe aktarma olarak veya orijinali kullanıyorsanız
bu modülün .py dosyası. Bu durumda şunları kullanabiliriz:

      eğer __name__ == “__main__”:

Bunu belirlemek için satır. Örneğin:

Komut dosyanız Python yorumlayıcısına komut olarak geçirilerek çalıştırıldığında:

    python myscript.py
Bu kod başka bir modüle aktarılıyorsa, çeşitli
sınıf tanımları içe aktarılacak, ancak main () kodu çalışmayacak. Olarak
temel örnek, aşağıdaki iki komut dosyasını düşünün:

    # dosya one.py
    def func ():
        print (“one.py içinde func ()”)

    baskı (“one.py içinde üst seviye”)

    eğer __name__ == “__main__”:
        print (“one.py doğrudan çalıştırılıyor”)
    Başka:
        print (“one.py başka bir modüle aktarılıyor”)

ve sonra:

    # file two.py
    birini içe aktar

    baskı (“two.py içinde üst düzey”)
    one.func ()

    eğer __name__ == “__main__”:
        print (“two.py doğrudan çalıştırılıyor”)
    Başka:
        print (“two.py başka bir modüle aktarılıyor”)

Bugün kü yazı çok verimli olmamış olabilir kusura bakmayın, pazartesiye bomba gibi döneceğim, süper örnekler yapacağım. Görüşmek üzere.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s