Bu, muhtemelen daha önce sorulmuştur, ancak benim cevabımla ilgili cevabı bulamadım (genel olarak ...)Bir Python sınıf tanımını, bu sınıfın yardımcı dosyalarına göre düzgün bir şekilde nasıl düzenleriz?
İşte soruma bir örnek. Paketime 'okul' denir ve benim de yöntemlerin etini içeren .py dosyalarına sahip olan 'book' adında bir sınıfım var. İçe aktarma ifadelerinin garip görünmemesi için hepsini nasıl organize edeceğimi bilmiyorum.
Dosyaları nasıl düzenlerim?
from school import Book
b = Book(name="The Bible")
b.read()
Ama yukarıdaki dosya yapısından
, yapacak olurdu: bunun üzerinde mantıklı çünkü/school/
pencil/
book/
__init__.py
read.py
burn.py
book.py
ben böyle bir şey yapmak mümkün istiyorum
from school.book import Book
b = Book(....etc
VEYA
from school import book
b = book.Book(...etc
T hese garip/tekrarlayan ... burada neyi özlüyorum?
Yanıt için teşekkürler. Fakat read() ve burn() yöntemlerinin herbiri yüzlerce satırsa ve book.py'nin bir kod karmaşası olmasını istemiyorsam ne olur? – Ian
Her yöntem yüzlerce satırdır? Dürüst olmak gerekirse, bu şekilde bir dizi daha kısa işlevler olduğunu tekrar gözden geçirmenin yollarını bulmaya çalışacağım. Bu her zaman mümkün değil, ama yine de denerim. İdeal olarak, her bir işlevin bir şey yapmasını istersiniz, ve sadece bir şey, ve tek bir 'sayfaya' sığdırmak istersiniz (basılı bir sayfa veya kaydırma yapmadan editörünüzün tek bir ekranı olsun). Bununla birlikte, birkaç yüz satır uzunluğunda bazı işlevlerim olsa bile, hepsini aynı sınıfta tutardım. Python'un nesne modeline daha iyi uyuyor ve her şeyi bulmak daha kolay. – Jonathanb
O zaman muhtemelen daha küçük parçalara ayrılabilirler ve sizi küçük, kendi kendine yeten küçük özel yöntemler ve küçük yöntemlerin çalışmasını organize eden küçük kamu giriş yöntemleri read() ve burn() ile bırakabilirsiniz. Fakat her halükarda, büyük bir karmaşık yöntemin, ana dosyada olduğundan daha farklı bir dosyada (sınıfta atıfta bulunulan her şeyden daha uzak) anlaşılması daha kolay olmadığını görmüyorum. – Ben