Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Dekoratörler
Dekoratörler, fonksiyonlar, metotlar veya sınıflar gibi çağrılabilir nesnelerde basit değişiklikler yapmanıza olanak tanır. Bu eğitim için fonksiyonlarla ilgileneceğiz. Sözdizimi
Şuna eşdeğerdir:
Görüldüğü gibi, bir dekoratör, bir fonksiyon alıp bir tane döndüren başka bir fonksiyondur. Örneğin, bunu yapabilirsiniz:
Bu, bir fonksiyonun iki kez tekrarlanmasını sağlar.
Çıktıyı değiştirebilirsiniz
giriş değiştir
ve kontrol yapabilirsiniz.
Diyelim ki çıktıyı değişken bir miktarla çarpmak istiyorsunuz. Dekoratörü tanımlayabilir ve şu şekilde kullanabilirsiniz:
Eski fonksiyonla istediğiniz her şeyi yapabilirsiniz, hatta onu tamamen yok sayabilirsiniz! İleri düzey dekoratörler ayrıca doc stringini ve argüman sayısını da manipüle edebilir. Bazı havalı dekoratörler için, http://wiki.python.org/moin/PythonDecoratorLibrary adresine gidin.
Alıştırma
Bir argümana sahip fonksiyonları dekore eden bir dekoratör döndüren bir dekoratör fabrikası yapın. Fabrika bir argüman, bir tür almalı ve ardından fonksiyonu, girdinin doğru türde olup olmadığını kontrol eden bir dekoratör döndürmeli. Yanlış ise, print("Bad Type") yazmalıdır (Gerçekte, bir hata oluşturmalıdır, ancak hata oluşturma bu eğitimde yer almamaktadır). Eğer kafanız karışırsa (öyle olacağımı biliyorum) eğitim koduna ve beklenen çıktıya bakın. isinstance(object, type_of_object) veya type(object) kullanmanız yardımcı olabilir.
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!
