Ş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.
Şimdi bunu refactor move'a taşıyalı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 aktarma 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.
Geri dönüşler 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.