logo

Metoda privată Python

Introducere

În Python, o metodă privată este o metodă care nu este destinată să fie utilizată în afara clasei în care este definită. Aceste metode sunt notate printr-un prefix dublu de subliniere (__) înaintea numelui lor și pot fi accesate numai în cadrul clasei în care sunt definite. În acest articol, vom discuta despre conceptul de metode private în Python, avantajele și dezavantajele acestora și cum să le folosim cu exemple.

Ce este o metodă privată în Python?

O metodă privată este o metodă care nu este destinată să fie utilizată în afara clasei în care este definită. Aceste metode sunt folosite pentru a implementa funcționalitatea internă în cadrul clasei. Acestea nu sunt menite să fie folosite de cod extern. În Python, metodele private sunt notate printr-un prefix dublu de subliniere înaintea numelui lor.

Exemplu

 __method_name 

Cum se definește o metodă privată în Python?

Când programatorul dorește să definească o metodă privată în Python, atunci programatorul trebuie să adauge un prefix dublu de subliniere înaintea numelui metodei. Iată un exemplu:

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

Ieșire:

Metoda privată Python

Explicaţie:

În exemplul de mai sus, am definit o clasă numită MyClass. Are o metodă privată numită __private_method. Această metodă este apelată de la constructorul de clasă (__init__) folosind self.__private_method(). Deoarece metoda are un prefix dublu de subliniere, este privată și nu poate fi accesată în afara clasei.

gimp cum să deselectezi

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

Ieșire:

Metoda privată Python

Explicaţie:

Codul furnizat definește o clasă BankAccount cu metode de depunere și retragere a fondurilor, afișarea soldului contului și tipărirea unui extras de cont. O instanță a acestei clase este apoi creată și unele tranzacții sunt efectuate către aceasta, urmate de tipărirea unei declarații.

Avantajele metodelor private în Python

    Încapsulare:Metodele private ajută la realizarea încapsulării. Este un principiu fundamental al programarii orientate pe obiecte. Făcând anumite metode private, programatorul poate controla modul în care funcționalitatea internă a clasei este accesată din codul extern. Acest lucru face clasa mai sigură și ajută la prevenirea modificărilor nedorite ale comportamentului clasei.Reutilizarea codului:Metodele private pot fi folosite pentru a implementa funcționalități interne care pot fi reutilizate în cadrul clasei. Acest lucru poate ajuta la reducerea dublării codului și la îmbunătățirea menținerii codului.Depanare ușoară:Metodele private sunt accesibile numai în cadrul clasei, facilitând depanarea codului prin izolarea comportamentului clasei.

Dezavantajele metodelor private în Python

    Acces limitat:Metodele private sunt accesibile numai în cadrul clasei în care sunt definite. Aceasta înseamnă că, dacă programatorul trebuie să acceseze funcționalitatea unei metode private din afara clasei, atunci trebuie să creeze o metodă publică care apelează metoda privată. Acest lucru poate adăuga o complexitate suplimentară codului.Fals sentiment de securitate:Metodele private ale lui Python nu sunt cu adevărat private. Este încă posibil să le accesați în afara clasei folosind sintaxa _classname__methodname(). Cu toate acestea, aceasta este considerată o practică proastă și ar trebui evitată.Complexitate crescută:Utilizarea metodelor private poate crește complexitatea codului, făcându-l mai greu de înțeles și de întreținut. Acest lucru poate fi valabil mai ales dacă metodele private sunt prost documentate.

Concluzie

Metodele private din Python sunt o caracteristică utilă care poate ajuta la realizarea încapsulării și la îmbunătățirea mentenanței codului. Deși au unele dezavantaje, beneficiile utilizării metodelor private în Python depășesc dezavantajele.