logo

Python Özel Yöntemi

giriiş

Python'da özel yöntem, tanımlandığı sınıfın dışında kullanılması amaçlanmayan bir yöntemdir. Bu metodlar isimlerinden önce çift altçizgi (__) ile gösterilir ve sadece tanımlandıkları sınıf içinden erişilebilirler. Bu yazımızda Python'da özel yöntem kavramını, avantajlarını, dezavantajlarını ve nasıl kullanılacağını örneklerle tartışacağız.

Python'da Özel Yöntem Nedir?

Özel yöntem, tanımlandığı sınıfın dışında kullanılması amaçlanmayan bir yöntemdir. Bu yöntemler, sınıf içindeki dahili işlevselliği uygulamak için kullanılır. Bunların harici kod tarafından kullanılması amaçlanmamıştır. Python'da özel yöntemler, adlarının önünde çift alt çizgi önekiyle gösterilir.

Java'da string yöntemine

Örnek

 __method_name 

Python'da Özel Yöntem Nasıl Tanımlanır?

Programcı Python'da özel bir yöntem tanımlamak istediğinde, programcının yöntem adından önce çift alt çizgi öneki eklemesi gerekir. İşte bir örnek:

Program 1:

 class MyClass: def __init__(self): self.__private_method() def __private_method(self): print('This is a private method.') # Instantiate, the class my_obj = MyClass() 

Çıktı:

Python Özel Yöntemi

Açıklama:

Yukarıdaki örnekte MyClass adında bir sınıf tanımladık. __private_method adında özel bir yöntemi vardır. Bu yöntem, self.__private_method() kullanılarak sınıf yapıcısından (__init__) çağrılır. Yöntem çift alt çizgi önekine sahip olduğundan özeldir ve sınıf dışından erişilemez.

Program 2:

 class BankAccount: def __init__(self, account_number, balance): self.__account_number = account_number self.__balance = balance def deposit(self, amount): self.__balance += amount def withdraw(self, amount): if self.__balance >= amount: self.__balance -= amount else: print('Insufficient funds') def __display_balance(self): print('Account Balance:', self.__balance) def statement(self): print('Account Number:', self.__account_number) self.__display_balance() # create a BankAccount object my_account = BankAccount('123456789', 1000) # make some transactions my_account.deposit(500) my_account.withdraw(200) # print a statement my_account.statement() 

Çıktı:

Python Özel Yöntemi

Açıklama:

bilgisayar ekranım ne kadar büyük

Sağlanan kod, para yatırma ve çekme, hesap bakiyesini görüntüleme ve hesap özeti yazdırma yöntemleriyle birlikte bir BankAccount sınıfını tanımlar. Daha sonra bu sınıfın bir örneği oluşturulur ve bazı işlemler yapılır, ardından bir ifade yazdırılır.

Python'da Özel Yöntemlerin Avantajları

    Kapsülleme:Özel yöntemler kapsüllemenin sağlanmasına yardımcı olur. Nesneye yönelik programlamanın temel ilkesidir. Belirli yöntemleri özel yaparak programcı, sınıfın dahili işlevselliğine harici koddan nasıl erişildiğini kontrol edebilir. Bu, sınıfı daha güvenli hale getirir ve sınıfın davranışında istenmeyen değişikliklerin önlenmesine yardımcı olur.Kodun Yeniden Kullanılabilirliği:Özel yöntemler, sınıf içinde yeniden kullanılabilecek dahili işlevleri uygulamak için kullanılabilir. Bu, kod tekrarının azaltılmasına ve kod bakımının iyileştirilmesine yardımcı olabilir.Kolay Hata Ayıklama:Özel yöntemlere yalnızca sınıf içinde erişilebilir, bu da sınıfın davranışını izole ederek kodda hata ayıklamayı kolaylaştırır.

Python'da Özel Yöntemlerin Dezavantajları

    Sınırlı erişim:Özel yöntemlere yalnızca tanımlandıkları sınıf içerisinde erişilebilir. Bu, programcının özel bir yöntemin işlevselliğine sınıf dışından erişmesi gerekiyorsa, özel yöntemi çağıran genel bir yöntem oluşturması gerektiği anlamına gelir. Bu, koda ek karmaşıklık katabilir.Yanlış Güvenlik Duygusu:Python'un özel yöntemleri gerçekten özel değildir. _classname__methodname() sözdizimini kullanarak bunlara sınıf dışından erişmek hâlâ mümkündür. Ancak bu kötü bir uygulama olarak kabul edilir ve bundan kaçınılmalıdır.Artan Karmaşıklık:Özel yöntemlerin kullanılması kodun karmaşıklığını artırabilir, anlaşılmasını ve sürdürülmesini zorlaştırabilir. Bu, özellikle özel yöntemlerin yeterince belgelenmemiş olması durumunda geçerli olabilir.

Çözüm

Python'daki özel yöntemler, kapsüllemenin sağlanmasına ve kodun sürdürülebilirliğinin iyileştirilmesine yardımcı olabilecek kullanışlı bir özelliktir. Bazı dezavantajları olsa da Python'da özel yöntemleri kullanmanın yararları, dezavantajlarından daha ağır basmaktadır.