Uvod
U Pythonu, privatna metoda je metoda koja nije namijenjena za korištenje izvan klase u kojoj je definirana. Ove metode su označene dvostrukim prefiksom podvlake (__) ispred njihovog naziva, a može im se pristupiti samo unutar klase u kojoj su definirane. U ovom članku raspravljat ćemo o konceptu privatnih metoda u Pythonu, njihovim prednostima i nedostacima te kako ih koristiti s primjerima.
Što je privatna metoda u Pythonu?
Privatna metoda je metoda koja nije namijenjena za korištenje izvan klase u kojoj je definirana. Ove se metode koriste za implementaciju interne funkcionalnosti unutar klase. Oni nisu namijenjeni za korištenje od strane vanjskog koda. U Pythonu su privatne metode označene prefiksom dvostruke podvlake ispred naziva.
Primjer
__method_name
Kako definirati privatnu metodu u Pythonu?
Kada programer želi definirati privatnu metodu u Pythonu, tada programer treba dodati prefiks dvostruke podvlake prije naziva metode. Evo primjera:
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()
Izlaz:
Obrazloženje:
U gornjem primjeru definirali smo klasu pod nazivom MyClass. Ima privatnu metodu koja se zove __private_method. Ova se metoda poziva iz konstruktora klase (__init__) pomoću self.__private_method(). Budući da metoda ima prefiks dvostruke podvlake, privatna je i ne može joj se pristupiti izvan klase.
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()
Izlaz:
Obrazloženje:
Navedeni kod definira klasu BankAccount s metodama za polaganje i podizanje sredstava, prikaz stanja računa i ispis izvoda računa. Zatim se kreira instanca ove klase i na njoj se izvrše neke transakcije, nakon čega slijedi ispis izjave.
Prednosti privatnih metoda u Pythonu
Nedostaci privatnih metoda u Pythonu
Zaključak
Privatne metode u Pythonu korisna su značajka koja može pomoći u postizanju enkapsulacije i poboljšati mogućnost održavanja koda. Iako imaju neke nedostatke, prednosti korištenja privatnih metoda u Pythonu nadmašuju nedostatke.