logo

Zasebna metoda Python

Uvod

V Pythonu je zasebna metoda metoda, ki ni namenjena uporabi zunaj razreda, v katerem je definirana. Te metode so označene z dvojno podčrtano predpono (__) pred njihovim imenom in do njih je mogoče dostopati samo znotraj razreda, kjer so definirane. V tem članku bomo razpravljali o konceptu zasebnih metod v Pythonu, njihovih prednostih in slabostih ter o tem, kako jih uporabiti s primeri.

Kaj je zasebna metoda v Pythonu?

Zasebna metoda je metoda, ki ni namenjena uporabi zunaj razreda, v katerem je definirana. Te metode se uporabljajo za implementacijo notranje funkcionalnosti znotraj razreda. Ti niso namenjeni uporabi z zunanjo kodo. V Pythonu so zasebne metode označene z dvojno podčrtano predpono pred njihovim imenom.

Primer

 __method_name 

Kako definirati zasebno metodo v Pythonu?

Ko želi programer definirati zasebno metodo v Pythonu, mora dodati dvojno podčrtano predpono pred imenom metode. Tukaj je primer:

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

Izhod:

Zasebna metoda Python

Pojasnilo:

V zgornjem primeru smo definirali razred, imenovan MyClass. Ima zasebno metodo, imenovano __private_method. Ta metoda se pokliče iz konstruktorja razreda (__init__) z uporabo self.__private_method(). Ker ima metoda dvojno podčrtano predpono, je zasebna in do nje ni mogoče dostopati zunaj razreda.

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

Izhod:

Zasebna metoda Python

Pojasnilo:

Priložena koda definira razred BankAccount z metodami za polog in dvig sredstev, prikaz stanja na računu in tiskanje izpiska računa. Nato se ustvari primerek tega razreda in z njim se izvede nekaj transakcij, čemur sledi tiskanje izjave.

Prednosti zasebnih metod v Pythonu

    Enkapsulacija:Zasebne metode pomagajo doseči enkapsulacijo. Je temeljni princip objektno orientiranega programiranja. Če nekatere metode naredijo zasebne, lahko programer nadzira, kako se do notranje funkcionalnosti razreda dostopa iz zunanje kode. To naredi razred bolj varen in pomaga pri preprečevanju neželenih sprememb vedenja razreda.Ponovna uporabnost kode:Zasebne metode je mogoče uporabiti za implementacijo notranje funkcionalnosti, ki jo je mogoče ponovno uporabiti znotraj razreda. To lahko pomaga zmanjšati podvajanje kode in izboljša vzdržljivost kode.Enostavno odpravljanje napak:Zasebne metode so dostopne le znotraj razreda, kar olajša odpravljanje napak v kodi z izolacijo vedenja razreda.

Slabosti zasebnih metod v Pythonu

    Omejen dostop:Zasebne metode so dostopne le znotraj razreda, v katerem so definirane. To pomeni, da če mora programer dostopati do funkcionalnosti zasebne metode zunaj razreda, mora ustvariti javno metodo, ki kliče zasebno metodo. To lahko doda dodatno zapletenost kodi.Lažen občutek varnosti:Zasebne metode Pythona niso resnično zasebne. Do njih je še vedno mogoče dostopati zunaj razreda s sintakso _classname__methodname(). Vendar se to šteje za slabo prakso in se ji je treba izogibati.Povečana kompleksnost:Uporaba zasebnih metod lahko poveča kompleksnost kode, zaradi česar je težje razumeti in vzdrževati. To lahko še posebej velja, če so zasebne metode slabo dokumentirane.

Zaključek

Zasebne metode v Pythonu so uporabna funkcija, ki lahko pomaga doseči enkapsulacijo in izboljša vzdržljivost kode. Čeprav imajo nekatere pomanjkljivosti, so prednosti uporabe zasebnih metod v Pythonu večje od pomanjkljivosti.