Python paketleri: Nasıl oluşturulur ve içe aktarılır?

Bu makalede, Python paketlerini kullanarak kod tabanınızı temiz, verimli modüllere ayırmayı öğreneceksiniz. Ayrıca, Python programınızda kendi veya üçüncü taraf paketlerinizi içe aktarmayı ve kullanmayı öğreneceksiniz.

Video: Python Paketleri: Kodunuzu Düzenleyin

Paketler nedir?

Genellikle tüm dosyalarımızı bilgisayarımızda aynı yerde saklamıyoruz. Daha kolay erişim için iyi organize edilmiş bir dizin hiyerarşisi kullanıyoruz.

Benzer dosyalar aynı dizinde tutulur, örneğin tüm şarkıları " müzik " dizininde tutabiliriz . Buna benzer bir şekilde, Python'da dizinler için paketler ve dosyalar için modüller vardır.

Uygulama programımızın boyutu birçok modülle büyüdükçe, benzer modülleri tek bir pakete ve farklı modülleri farklı paketlere yerleştiriyoruz. Bu, bir projenin (programın) yönetilmesini kolaylaştırır ve kavramsal olarak netleşir.

Benzer şekilde, bir dizin alt dizinler ve dosyalar içerebildiğinden, bir Python paketi alt paketlere ve modüllere sahip olabilir.

Bir dizin __init__.py, Python'un onu bir paket olarak kabul etmesi için adlandırılmış bir dosya içermelidir . Bu dosya boş bırakılabilir, ancak genellikle bu paketin başlatma kodunu bu dosyaya yerleştiririz.

İşte bir örnek. Bir oyun geliştirdiğimizi varsayalım. Olası bir paket ve modül organizasyonu aşağıdaki şekilde gösterildiği gibi olabilir.

Python Programlamada Paket Modül Yapısı

Modülü bir paketten içe aktarma

Nokta (.) Operatörünü kullanarak paketlerden modülleri içe aktarabiliriz.

Örneğin start, yukarıdaki örnekte modülü içe aktarmak istersek aşağıdaki gibi yapılabilir:

 import Game.Level.start

Şimdi, bu modül adlandırılmış bir işlev içeriyorsa select_difficulty(), ona başvurmak için tam adı kullanmalıyız.

 Game.Level.start.select_difficulty(2)

Bu yapı uzun görünüyorsa, modülü paket öneki olmadan aşağıdaki gibi içe aktarabiliriz:

 from Game.Level import start

Artık işlevi basitçe şu şekilde adlandırabiliriz:

 start.select_difficulty(2)

Bir paketteki bir modülden sadece gerekli işlevi (veya sınıfı veya değişkeni) içe aktarmanın başka bir yolu aşağıdaki gibi olacaktır:

 from Game.Level.start import select_difficulty

Şimdi bu işlevi doğrudan adlandırabiliriz.

 select_difficulty(2)

Daha kolay olmasına rağmen bu yöntem tavsiye edilmemektedir. Tam ad alanını kullanmak karışıklığı önler ve iki aynı tanımlayıcı adının çakışmasını önler.

Python, paketleri içe aktarırken sys.pathmodül arama yoluna benzer şekilde içinde tanımlanan dizinler listesine bakar .

Ilginç makaleler...