‫Şimdi bu modülleri içe aktarmanın farklı yollarını öğrenelim.
‫Şimdiye kadar sadece ithalat hakkında bilgi edindik, ancak bazen işler oldukça telaşlı olabiliyor.
‫Örneğin, aslında başka bir paketin içinde başka bir pakete sahip olabiliriz.
‫Örneğin, burada yeni bir klasör oluşturursam ve Yeni Python paketi dersem, buna daha fazla alışveriş tıklaması diyeceğiz.
‫Tamam.
‫Şunu görüyor musun?
‫Kendi içinde dosyası olan bir paketin içinde başka bir paket başlattım.
‫Bunu şimdi refactor move yapalım ve more shopping klasörünün içine taşıyalım.
‫O yüzden daha fazlasını söyleyeceğim.
‫Alışveriş.
‫Eğer och'a tıklarsam, bu modülü buraya taşıdığımı göreceksiniz.
‫Yani bir paketin içinde bir paket var.
‫Buna ulaşmanın yolu da sadece daha fazla alışveriş yapmaktan geçiyor.
‫Alışveriş noktası alışveriş sepeti.
‫Bunu kopyalayalım ve aynısını burada da yapalım.
‫Ve şimdi Çalıştır'a tıkladığımda.
‫Hala çalıştığını göreceksiniz.
‫Ama bu biraz fazla çılgınca olmaya başladı.
‫Giderek daha fazla pakete sahip olduğumuz için sürekli olarak bu noktayı, bu noktayı yapmak zorunda olduğumuzu hayal
‫edebilirsiniz ve bu biraz oluyor.
‫Çok uzun ve çirkin.
‫Peki bunu nasıl daha iyi hale getirebiliriz?
‫Bunu daha temiz bir şekilde yapmanın bir yolu, içe aktar demek yerine şöyle bir şey yapmaktır.
‫Bundan yola çıkarak diyoruz ki.
‫Bölüm, işlevi içe aktarmak istiyorum.
‫Yani burada diyorum ki, hey, paket adından, paket adından, modülden, istediğim işlevi içe aktar.
‫Bizim durumumuzda, buy fonksiyonunu içe aktarmak istiyoruz.
‫Gördüğünüz gibi burada bunu yapabiliyorum ve kodumda.
‫Bu ana dosyanın bir parçasıymış gibi çalıştırabilirim.
‫Eğer bunu çalıştırırsam.
‫Hala çalıştığını göreceksiniz.
‫Harika.
‫Yani bu kesinlikle daha temiz.
‫Ve bunu kamu hizmetiyle de yapabiliriz.
‫Yardımcı programdan içe aktar diyebilirim ve aslında iki dosyayı veya iki işlevi içe aktarabilirim.
‫Yani çoğalıyor.
‫Ve eğer başka bir fonksiyon istiyorsak, sadece bir virgül ekleyip böl diyebiliriz.
‫Artık Apple'ı basabiliriz.
‫Ya da hem Apple hem de divide tarafından.
‫Beşe iki diyelim.
‫Ayrıca çoğalabiliriz de.
‫Oh, ve burada virgül olduğundan emin olun çünkü bunun gibi bir fonksiyon, böylece bunu çalıştırırsam, bunu göreceksiniz.
‫İşte oldu.
‫Bu da işe yarar.
‫Yani bu, kodunuzu temizlemenin gerçekten güzel bir yoludur.
‫Şöyle bir şey de yapabilirsiniz: paket adından, paket adı.
‫Ve sonra tüm modülü içe aktarın.
‫Diyelim ki alışveriş sepeti modülünü içe aktarmak istiyorum.
‫İthal diyebilirim.
‫Yani paket nokta paket.
‫Ya da sadece bir paket yapıp gerçek modül alışveriş sepetini içe aktarabilirsiniz.
‫Yani şimdi bu alışveriş sepeti gibi erişebilirim.
‫Ve bu da işe yarayacak.
‫Şimdi, daha önce yaptığımız şey yerine bunu yapmak istemenizin nedeni, bazen isim çakışmaları yaşayabilmenizdir.
‫Sana göstereyim.
‫Diyelim ki bir baskı aldım ve sonra burada bize yerleşik bir işlev veren max işlevini kullanıyoruz.
‫Ona bir yineleyici veriyoruz ve bizim için maksimum değeri buluyor, böylece bunu çalıştırırsam, bu listedeki maksimum değerin
‫üç olduğunu göreceksiniz.
‫Peki, fayda fonksiyonumuzda bölmek yerine bir maksimum eklediğimizi ve basitçe şöyle dediğimizi hayal
‫edin.
‫İadeler ve whoops.
‫Ana pi'me geri dönersem.
‫Ve.
‫İşlevim olarak Max'i alıyorum ve Çalıştır'a tıklıyorum.
‫Görüyorsun, hava alıyorum.
‫Max'in sıfır pozisyon argümanı almasını anlıyorum ama bir tane verildi çünkü şimdi Max bizim düşündüğümüz şeyi
‫kastetmiyor.
‫En azından bu dosyada Max ve well'i içe aktardık.
‫Max artık tamamen farklı bir işlevdir, bu nedenle aslında mevcut işlevleri geçersiz kılabiliriz.
‫Dolayısıyla, bu alışveriş sepeti gibi bir şey kullanarak, Çarpışma olarak adlandırabileceğimiz yalnızca bir vakamız olduğundan
‫emin oluruz.
‫Ancak alışveriş sepetinin sahip olduğu tüm özellikler veya tüm yöntemler alışveriş sepetine bağlıdır.
‫Böylece, geçersiz kılınabilecek birden fazla fonksiyona sahip olmak yerine, yalnızca bir isim alanım var.
‫Bu arada, böyle bir şey yapmanızı tavsiye etmememin nedenlerinden biri de bu.
‫Aslında ithal yıldız yapabilirsiniz.
‫Ve bunun söylediği şey, hey, yardımcı modülden her şeyi içe aktar.
‫Ve bunu yaptığında.
‫Maksimum değeri de içe aktardığı için bir kez daha hata aldığımızı göreceksiniz.
‫Ve şu anda neyin ithal edildiğini bile bilmediğimiz için bunu göremiyoruz.
‫Bunu görmek için dosyaya gitmemiz gerekiyor.
‫Böyle bir hata aldığımızda, "Neler oluyor?" diye sorarız.
‫Max'in çalıştığını ve bunun bu hat sayesinde olduğunu düşündüm.
‫Bu nedenle, açık olmak ve tam olarak ne ithal etmek istediğinizi söylemek her zaman iyidir.
‫Ama şimdilik Max'i kaldıralım.
‫Ancak gördüğünüz gibi, modüller farklı şekillerde önemli olabilir.
‫Benim tavsiyem her zaman açık olmanız ve tam olarak neyi içe aktarmak istediğinizi söylemenizdir
‫ve format genellikle ya import deyimini ve ardından paket modülünü ya da modülü içe aktarmayı takip eder.
‫Ya da isterseniz paket, alt, paket ve modül vermek için from deyimini kullanabilir veya modül yapabilir
‫ve ardından import ve belirli işlev veya gerçek modülün kendisi diyebilirsiniz.
‫İhtiyacınıza bağlı olarak bunu yapmanın birçok yolu vardır.
‫Buradaki temel çıkarım, modüllerin ve paketlerin iyi mühendislik uygulamalarına sahip olmamıza ve büyük projeleri organize bir şekilde oluşturmamıza
‫yardımcı olduğu, ancak yine de tüm bu dosyalara sahip olduğumuzdur.
‫Birbirinizle konuşun.
‫Tamam.
‫Bu çok fazlaydı.
‫Bir sonraki videoda daha fazlasını öğrenelim.