logo

Python Privatna metoda

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:

Python Privatna metoda

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:

Python Privatna metoda

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

    Enkapsulacija:Privatne metode pomažu u postizanju kapsulacije. To je temeljni princip objektno orijentiranog programiranja. Učinivši određene metode privatnima, programer može kontrolirati kako se internoj funkcionalnosti klase pristupa iz vanjskog koda. Ovo čini klasu sigurnijom i pomaže u sprječavanju neželjenih promjena u ponašanju klase.Mogućnost ponovne upotrebe koda:Privatne metode mogu se koristiti za implementaciju interne funkcionalnosti koja se može ponovno koristiti unutar klase. To može pomoći u smanjenju dupliciranja koda i poboljšati mogućnost održavanja koda.Jednostavno uklanjanje pogrešaka:Privatne metode dostupne su samo unutar klase, što olakšava otklanjanje pogrešaka koda izoliranjem ponašanja klase.

Nedostaci privatnih metoda u Pythonu

    Ograničen pristup:Privatne metode dostupne su samo unutar klase u kojoj su definirane. To znači da ako programer treba pristupiti funkcionalnosti privatne metode izvan klase, tada mora stvoriti javnu metodu koja poziva privatnu metodu. Ovo može dodati dodatnu složenost kodu.Lažan osjećaj sigurnosti:Privatne metode Pythona nisu doista privatne. I dalje im je moguće pristupiti izvan klase pomoću sintakse _classname__methodname(). Međutim, to se smatra lošom praksom i treba je izbjegavati.Povećana složenost:Korištenje privatnih metoda može povećati složenost koda, čineći ga težim za razumijevanje i održavanje. To može biti osobito istinito ako su privatne metode slabo dokumentirane.

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.