logo

Metoda prywatna w Pythonie

Wstęp

W Pythonie metoda prywatna to metoda, która nie jest przeznaczona do użytku poza klasą, w której jest zdefiniowana. Metody te są oznaczone przed nazwą podwójnym podkreśleniem (__) i można uzyskać do nich dostęp tylko w klasie, w której zostały zdefiniowane. W tym artykule omówimy koncepcję metod prywatnych w Pythonie, ich zalety i wady oraz sposoby ich używania na przykładach.

scalanie sortowania Java

Co to jest metoda prywatna w Pythonie?

Metoda prywatna to metoda, która nie jest przeznaczona do stosowania poza klasą, w której jest zdefiniowana. Metody te służą do implementacji wewnętrznej funkcjonalności w klasie. Nie są one przeznaczone do użycia przez kod zewnętrzny. W Pythonie metody prywatne są oznaczone podwójnym podkreśleniem przed ich nazwą.

Przykład

 __method_name 

Jak zdefiniować metodę prywatną w Pythonie?

Gdy programista chce zdefiniować metodę prywatną w Pythonie, musi dodać przedrostek z podwójnym podkreśleniem przed nazwą metody. Oto przykład:

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() 

Wyjście:

Metoda prywatna w Pythonie

Wyjaśnienie:

W powyższym przykładzie zdefiniowaliśmy klasę o nazwie MyClass. Posiada prywatną metodę o nazwie __private_method. Ta metoda jest wywoływana z konstruktora klasy (__init__) przy użyciu metody self.__private_method(). Ponieważ metoda ma przedrostek z podwójnym podkreśleniem, jest prywatna i nie można uzyskać do niej dostępu poza klasą.

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() 

Wyjście:

Metoda prywatna w Pythonie

Wyjaśnienie:

Dostarczony kod definiuje klasę BankAccount z metodami wpłacania i wypłacania środków, wyświetlania salda konta i drukowania wyciągu z rachunku. Następnie tworzona jest instancja tej klasy, przeprowadzane są w niej pewne transakcje, po czym następuje drukowanie instrukcji.

Zalety metod prywatnych w Pythonie

    Kapsułkowanie:Metody prywatne pomagają w osiągnięciu enkapsulacji. Jest to podstawowa zasada programowania obiektowego. Ustawiając niektóre metody jako prywatne, programista może kontrolować sposób, w jaki uzyskiwany jest dostęp do wewnętrznej funkcjonalności klasy z kodu zewnętrznego. Dzięki temu klasa jest bezpieczniejsza i pomaga zapobiegać niepożądanym zmianom w zachowaniu klasy.Możliwość ponownego użycia kodu:Metod prywatnych można używać do implementowania wewnętrznych funkcjonalności, które można ponownie wykorzystać w klasie. Może to pomóc w ograniczeniu powielania kodu i poprawie łatwości jego konserwacji.Łatwe debugowanie:Metody prywatne są dostępne tylko wewnątrz klasy, co ułatwia debugowanie kodu poprzez izolowanie zachowania klasy.

Wady metod prywatnych w Pythonie

    Ograniczony dostęp:Metody prywatne są dostępne tylko w klasie, w której są zdefiniowane. Oznacza to, że jeśli programista potrzebuje dostępu do funkcjonalności metody prywatnej spoza klasy, musi utworzyć metodę publiczną, która wywołuje metodę prywatną. Może to zwiększyć złożoność kodu.Fałszywe poczucie bezpieczeństwa:Prywatne metody Pythona nie są tak naprawdę prywatne. Nadal można uzyskać do nich dostęp poza klasą, korzystając ze składni _classname__methodname(). Jest to jednak uważane za złą praktykę i należy go unikać.Zwiększona złożoność:Stosowanie metod prywatnych może zwiększyć złożoność kodu, czyniąc go trudniejszym do zrozumienia i utrzymania. Może to być szczególnie prawdziwe, jeśli metody prywatne są słabo udokumentowane.

Wniosek

Metody prywatne w Pythonie to przydatna funkcja, która może pomóc w osiągnięciu enkapsulacji i poprawie łatwości konserwacji kodu. Chociaż mają one pewne wady, korzyści wynikające z używania metod prywatnych w Pythonie przeważają nad wadami.