‫Bu noktaya kadar Python kodumuzu organize etmenin birkaç yolunu öğrendik.
‫İyi yaptığımız ilk şey, Python'u bir dosyaya yazdık ve bu onu organize etti, değil mi?
‫Tüm kodumuz şimdiye kadar tek bir dosyadaydı.
‫Bu da kodumuzu düzenlememizin bir yoluydu.
‫Daha sonra fonksiyonları öğrendik ve fonksiyonlar tekrar tekrar kod yazmamamız için bir yol
‫olarak kullanıldı.
‫Dosyamızda istediğimiz yerde kullanabileceğimiz fonksiyonlar yazabiliriz, böylece bu fonksiyonları tekrar
‫tekrar çağırabiliriz ve fonksiyonları uygun şekilde adlandırabiliriz, böylece kodumuz anlamlı olur ve kullanmamız için güzel bir
‫şekilde paketlenir.
‫Tüm bunlar kodumuzu temiz tutmamız, kodumuzu daha sürdürülebilir hale getirmemiz ve böylece kodumuzu düzenli
‫tutmamız içindi.
‫Çünkü daha fazla kod satırı yazdıkça, her şeyi aklınızda tutmak gittikçe zorlaşıyor.
‫Diğer insanlar projenizde çalışmak için ekibinize katılırsa, işlerin nasıl yürüdüğünü anlamanın kolay bir yoluna ihtiyaçları
‫vardır.
‫Ancak hala bir sorunumuz var ve bu sorun her şeyin bu tek dosyada yer alması.
‫Yazdığımız tüm fonksiyonlar sadece bir dot pi dosyası üzerindeydi.
‫Ancak gerçek hayatta durum böyle değildir.
‫Çok daha fazla kodumuz var ve milyonlarca satır kod içeren tek bir dosyaya sahip olamayız.
‫Peki nasıl düzenli kalabiliriz?
‫Pekala.
‫Python'un birden fazla dosyasına sahip olsaydık.
‫Bunun gibi çünkü projemiz gittikçe büyüyor.
‫Bu işe yarar mı?
‫Tüm bu dosyaları birbirine bağlamamızın bir yolu var mı?
‫Aslına bakarsanız, tüm sektörde çok yaygın bir uygulama var ve biz buna kod modüllerini
‫organize etme yolu diyoruz.
‫Modüller ise basitçe bu dosyalardır.
‫Bu dosyaların her biri, her dot pi dosyası bir modüldür.
‫Ve bu modülleri oluşturarak, farklı işlevler oluşturmuş gibi, farklı sınıflar oluşturmuş gibi oluruz
‫çünkü bu dosyaların içinde sınıflarımız olabilir, işlevlerimiz olabilir ama aynı zamanda farklı dosyalarımız
‫da olabilir.
‫Yani kodumuzu bölmek için bir üst katman.
‫Ve bu bölümde modüller hakkında her şeyi öğreneceğiz ve bu konuda uzmanlaşmaya çalışacağız ve nasıl düzenli kod yazabileceğimizi
‫göreceğiz.
‫Bir göz atalım.
‫Burada görebilirsiniz, dalgalanmamızdaki dosyalara tıklarsam, bir ana pi'miz var ve Çalıştır'a her tıkladığımda
‫bu dosya çalıştırılıyor.
‫Peki ya daha fazla dosyamız varsa?
‫Buraya başka bir dosya eklesem ve adını Utility Dot Pi koysak nasıl olur?
‫Size öğrettiklerime dayanarak, bu iki şey nedir?
‫Onlar modül, değil mi?
‫Main Pi bir modül yardımcı programıdır.
‫PI bir modüldür.
‫Ve modül yazarken Python'daki değişkenlerle aynı prensipleri kullanırız, ki bu yılan vakasıdır.
‫Yani, boşluk varsa alt çizgi kullanırız, her şey küçük harftir.
‫Peki bu modülleri nasıl böleceğiz?
‫Ve bu pratikle gelir.
‫Yeni başladığınızda şunu söylemek zor, hey, hangi dosyaya ne giriyor, hangi dosyaya ne giriyor?
‫Ama derslere benziyor, değil mi?
‫Fonksiyonlara benzer.
‫Kodumuzu mantıklı parçalara bölmek istiyoruz.
‫Yine diyelim ki Netflix'te çalışıyoruz.
‫Videolara adanmış bir dosyamız olabilir, bir kullanıcının oturum açmasına adanmış başka bir dosyamız veya modülümüz olabilir, belki
‫de analitiklere ve kullanıcılar için önerileri bulmaya adanmış başka bir dosyamız olabilir.
‫Bu sınıfları ve fonksiyonları anlamlı bir dosya içinde bir araya getirmek istiyoruz.
‫Şimdi, bir modülü kullanmanın en yaygın yollarından biri yardımcı program gibi bir şeydir.
‫Diyelim ki bir yardımcı modül oluşturmak istiyoruz, bu modül çok sayıda iyi, bir tür alet kemeri gibi, projemizin her
‫yerinde kullanabileceğimiz çok basit işlevlere sahip bir modüldür, çünkü burada birden fazla dosyaya sahip olduğumuzu
‫hayal edebiliriz.
‫Öyleyse çok basit bir örnek oluşturalım.
‫Burada bir çarpma fonksiyonunun var olduğunu söyleyeceğim.
‫Bu da hissizleşmeyi ve hissizleşmeyi gerektirir.
‫Ve burada çok basit bir fonksiyona num bir kere num döndüreceğiz.
‫Ve bir kez daha, bir bölme fonksiyonumuz da olacak.
‫Ve evet, bu biraz işe yaramaz çünkü Python'da sadece artı veya bölme operandını kullanabiliriz.
‫Ama burada benimle kal.
‫Size bir örnek göstermeye çalışıyorum.
‫Tamam.
‫Yani iki numara, bir numarayı iki numaraya bölerek döndüreceğim.
‫Güzel ve basit.
‫Yani bu.
‫Bizim için tüm bu işlevlere sahip olan yardımcı modülümüzdür.
‫Şimdi bu dosyada aslında hiçbir şey yapmadığımıza dikkat edin.
‫Sadece işlevleri tanımlıyorum, ancak hiçbir işlevi çalıştırmıyorum.
‫Ancak diyelim ki bu yardımcı modülümüz var ve ben bunu ana py dosyamda kullanmak istiyorum.
‫Bunu nasıl yapabiliriz?
‫Bu iki dosya arasında iletişim kurmanın yolu oldukça basittir.
‫Tek yapmamız gereken içe aktar komutunu kullanmak ve ardından içe aktarmak istediğimiz dosya adını vermek.
‫Ne ithal etmek istiyoruz?
‫Bu şekilde hizmet ithal etmek istiyoruz.
‫Py noktasını eklemediğime dikkat edin çünkü içe aktaracağımız şeyin bir python dosyası olacağını
‫varsayıyoruz.
‫Yani bunu yapmamıza gerek yok.
‫Sadece isim.
‫Aynen böyle.
‫Şimdi, yardımcı programı buraya yazdıralım.
‫Eğer bunu çalıştırırsam.
‫Vay be.
‫Bunu gördün mü?
‫Modül yardımcı programımız var ve bu da bu web sitesinin bizim için oluşturduğu bir dosya yolu, bu yüzden gerçekten
‫önemli değil.
‫Şimdi, burada olan birkaç şey var.
‫Birincisi, bu nakit klasörünü oluşturduk.
‫Alt çizgi.
‫PY nakit.
‫Ve.
‫Tanrım, bu saçmalık da ne?
‫Hmm.
‫Bu oldukça kafa karıştırıcı, değil mi?
‫Bu pasta önbelleği, diyelim ki içe aktarma ifadeleri içeren bir dosyayı her çalıştırdığımızda oluşturulur.
‫Yani modülleri kullanırken.
‫Gördüğünüz gibi, Çalıştır'a tıkladığımızda Pi Cash ne yapıyor?
‫Yorumlayıcı bu podcast klasörünü oluşturacak ve diyecek ki, Hey, bu dosyayı çalıştırıyorum,
‫bu bir ana pi dosyası, py dosyası içe aktarılmayan herhangi bir şey, diyelim ki yardımcı program.
‫Bizim durumumuzda bunu nakde çevireceğim.
‫Bakın burada nasıl nokta pi yazıyor.
‫Bunun nedeni C Python yorumlayıcısını kullanıyor olmasıdır.
‫Unutmayın, bu C python, yani yorumlayıcı ve C ile yazılmış, yani bu aslında derlenmiş bir dosya.
‫Böylece bir dahaki sefere ana pi'mde çalıştır'a tıkladığımda hiçbir şey değişmeyecek çünkü pi yardımcı programını
‫yüklemek yerine, hiçbir şey değişmediği için yardımcı programın bu derlenmiş sürümünü yükleyecek.
‫Ve yardımcı pi.
‫Bu da işleri hızlandırıyor.
‫Main Pi'yi tekrar çalıştırmayı denediğimde, önbelleğe almanın bu olduğunu gördüm.
‫Önbelleğe alma, hey, bunu hatırlayacağım ve bu derleme sürümüdür, böylece derleme
‫adımından tekrar geçmek zorunda kalmam.
‫Ancak ana pi dosyasının derlenmediğine dikkat edin çünkü her seferinde onu çalıştırıyoruz.
‫Şimdi, fayda fonksiyonunu bölme işlemini içermeyecek şekilde değiştirirsek, çalıştır'a tıklarım ve burada bunu fark etmezsiniz.
‫Ancak şimdi farklı bir dosyamız olduğu için bu yeniden çalıştırıldı.
‫Gördüğünüz gibi burada çoğaltma var ama bölme yok.
‫Bölünmeyi tekrar gündeme getirelim.
‫Buraya geri dönün, çalıştır'a tıklayın.
‫Ve işte oldu.
‫Artık burada da bölünme var.
‫Ama bu bizim dokunmadığımız bir şey.
‫Bu, kullandığımız herhangi bir editörle birlikte kaputun altından gelir.
‫Birkaç videoda, pasta grafik gibi bir şey kullandığımızda da bunun nasıl gerçekleştiğini göstereceğiz.
‫Bu sadece editörlerin programlarımızın daha hızlı çalışabilmesi için yapmamıza izin verdiği bir şeydir.
‫Yani artık erişimim var.
‫Bunu biraz daha küçültelim.
‫Artık kamu hizmetlerine erişimim var.
‫Ve işte işin ilginç kısmı.
‫Eğer burada nokta yaparsam, şuna bak.
‫Bölme ve çarpma işlemlerine erişimim var, böylece sayıları çarpabiliyorum.
‫Diyelim ki iki ve üç tıklama koşusu.
‫Ve yardımcı program modülünü ana dosyamda kullanabiliyorum.
‫Çok, çok havalı.
‫Eğer bölme yaparsam ve Çalıştır'a tıklarsam.
‫Bunu da kullanabilirim.
‫Çok, çok havalı.
‫Ve burada farklı bir dosyam varsa ve başka bir şeyi içe aktarmak istiyorsam istediğim kadar içe aktarabilirim.
‫Diyelim ki dosyalanacak bir yardımcı program var.
‫Bunu içe aktarabilir ve istediğim kadar çok şeyi içe aktarabilir ve dosyalarımda kullanabilirim.
‫Ne kadar havalı değil mi?
‫Artık kodumuzu düzenlemek ve tüm bu dosyaların birlikte iletişim kurmasını sağlamak için bir yolumuz var.
‫Çünkü gerçek hayatta büyük projelerimiz var ve bu büyük projeler üzerinde farklı ekipler, farklı
‫programcılar çalışacak.
‫Ve tüm bu dosyalarla çalışmak için bir yola ihtiyacımız var.
‫Ve modüller arasında import deyimlerini kullanarak, tıpkı fonksiyonların farklı dosyalar arasında bize sağladığı
‫işlevselliği kullanabildiğimiz gibi, işlevselliği kullanabiliyoruz.
‫Ve çoğu zaman, eğer bir şirkette çalışıyorsanız, bir dot pi dosyasındaki ilk birkaç satır genellikle içe
‫aktarma ifadeleridir çünkü genellikle diğer dosyalarla iletişim kurarsınız.
‫Bir sonraki videoda biraz daha öğrenelim.