Şu eğitimden: Python Temel Eğitimi

Fonksiyon tanımlama

- [Eğitmen] İşlevler, Python'da yeniden kullanılabilir kodun temel birimidir. Öyleyse, nasıl çalıştıklarına bir göz atalım. Burada Komodo'da, alıştırma dosyalarının 7. Bölümünden function.py çalışma kopyasını açtım. Burada en alttan başlamak istiyorum çünkü bu alakalı ve şimdi bunu daha ayrıntılı olarak tanımlamak için daha fazla bağlamımız var. Koşullu ifadeleri ve if ve blokları ve bunun gibi şeyleri zaten ele aldık. Ve böylece, bunun nasıl çalıştığını biraz daha ayrıntılı olarak açıklamak istiyorum. Yani, bunun bir if ifadesi olduğunu fark ettiniz ve iki nokta üst üste tam burada ve aynı satırda ana olarak adlandırılan bir işlevimiz var. Ve böylece, if deyimiyle, yalnızca bir kod satırı olduğu sürece kodu aynı satırda tutabilirsiniz. Normalde kaşlarını çattı, ancak bu genellikle bu şekilde yapıldığı bir durumdur. Ve sonra burada, çifte eşittir'i eşitlik, değer eşitliği için bir testle karşılaştıran bu koşullu ifadeye sahibiz. Her iki tarafta çift alt çizgili özel değişken adı, her iki tarafta çift alt çizgili ana yazan bir dize değişmez değerine karşı. Yani bu ad değişkeni, bu özel değişken adı, geçerli modülün adını döndürür. Dolayısıyla, eğer bu dosya import deyimi tarafından başka bir yürütme birimine dahil edilmiş olsaydı, başka bir deyişle birisi import ve bu dosyanın adını yazmış olsaydı, o zaman bu bir modül olarak çalışır ve bu ad burada modülün adına sahip olurdu, ancak modül olarak çalışmaz. Kimse onu ithal etmedi ve ana yürütme birimi olarak çalışıyor. Ve böylece, bu nedenle, bu ana değer "Hayır, bu önemli değil, bu ana dosyadır" anlamına gelen özel bir değerdir. Ve böylece bunu test ediyoruz ve daha sonra modüller hakkında konuşmaya başladığımızda bunun özellikle nasıl kullanışlı olabileceğini göreceksiniz. Ancak, genellikle bu amaç için kullanılır, çünkü bu, yukarıda tanımlanan ana çağrıyı çağırır ve bu sorun değildir, çünkü önceden tanımlanmışsa işlevi çağırabilirsiniz, ancak ana daha sonra ondan sonra tanımlanan yavru kediyi çağırır ve bu yüzden eğer buna sahip olmasaydık ve bir fonksiyonumuz olmasaydı ana fonksiyonumuz yoktu ama ondan sonra bulmamız gereken fonksiyonumuz vardı, bunu çağıramayız ve bu yüzden bildirimler için çağrılır ve Python bildirimler için desteklemez. Ve böylece, bunun için standart çalışma budur. Ve çok şey göreceksiniz, aslında, Komodo'nun burada çok yaygın olması, bunun için kod tamamlaması var. Eğer "if and two underscores" yazarsam, bir dizi seçenek olduğunu fark edersiniz ve bunlardan biri tam olarak bu kod satırıdır ve sadece "main" yazabilirim ve boom, kod benim için bunu tamamlar. Bu sadece size bu modelin ne kadar yaygın olduğunu göstermek için, bunu özellikle modüllerde çok göreceksiniz. Ve şimdi, eğer bunu kaydedersem ve çalıştırırsam, miyavlama dediğini görürsünüz, çünkü eğer bu, burada bulunan ana çağrışımlar yaparsa ve bu ana çağırırsa, burada tanımlanan bir işlev olan yavru kediyi çağırır ve miyavlamayı yazdıran yazdırma işlevini çağırır. Şimdi, bir işlev tanımı şöyle görünüyor. def anahtar kelimesine ve ardından işlevin adına ve bir çift parantez ve bir iki nokta üst üste işaretine ve ardından bir kod bloğuna sahiptir. Ve böylece, bu kalıbı daha önce gördük ve bu çok, çok yaygın. İstersem buraya bir değişken, bir değer ya da başka bir şey koyabilirim, 5 sayısını koyabilirim ve sonra buraya parantez içine bir değişken koyarak bunu yakalayabilirim. Bu nedenle, parantezler parametreleri iletmek için kullanılır ve eğer istersem, bunu bir f-dizesi yapabilirim ve bu n'yi yazdırabilirim ve kaydedebilirim ve çalıştırabilirim ve şimdi 5 bu yazdırma deyimi tarafından yazdırılmaktadır. Ve böylece, açıkçası, eğer onu 3 olarak değiştirirsem, orada bir 3 yazdıracağını biliyorsunuz. Yani, parametreleri bir fonksiyona bu şekilde geçirirsiniz ve açıkçası, isterseniz komaya girebilir ve birden fazla parametre geçirebilirsiniz. Ve bunların hepsini işlevde aynı şekilde yakalayabilirsiniz. Tüm işlevler de bir değer döndürür. Yani, eğer bunun yerine buradaysa, ve şimdilik bunları kaldırmama izin verin, çünkü bunu kullanmayacağız. İsteseydim, x'in yavru kediye eşit olduğunu söyleyebilirdim ve sonra x'in değerini yazdırabilirdim. Ve kaydedip çalıştırdığımda, işlev açıkça bir değer döndürmediği için hiçbiri yazmıyor. Döndürdüğü değer, özel none değeridir. Böylece, tüm işlevler bir değer döndürür. Değeri belirtmezseniz, hiçbiri döndürmez. Bunun yerine dizeyi iade etmek isteseydim, bunu yapabilirdim ve şimdi burada 6. satırdaki bu baskı ifadesi miyavlamayı yazdıracak. Dolayısıyla, Python'un bir fonksiyon ve prosedür arasında bir ayrımı yoktur. Bazı dillerde vardır. Bazı diller bir işlevi değer döndüren bir şeyi, bir yordamı ise değer döndürmeyen bir şey olarak kabul eder. Python'da, değer hiç olmasa bile tüm işlevler bir değer döndürür, bu nedenle işlevler ve prosedürler arasında bir ayrım yoktur. Python fonksiyonları basit ve güçlüdür. Ve bu bölümün geri kalanında ayrıntılara gireceğiz.

İçerikler