logo

Súkromná metóda Pythonu

Úvod

V Pythone je súkromná metóda metóda, ktorá nie je určená na použitie mimo triedy, v ktorej je definovaná. Tieto metódy sú označené predponou dvojitého podčiarknutia (__) pred ich názvom a je možné k nim pristupovať iba v rámci triedy, kde sú definované. V tomto článku budeme diskutovať o koncepte súkromných metód v Pythone, ich výhodách a nevýhodách a ako ich používať s príkladmi.

predvolené parametre java

Čo je súkromná metóda v Pythone?

Súkromná metóda je metóda, ktorá nie je určená na použitie mimo triedy, v ktorej je definovaná. Tieto metódy sa používajú na implementáciu interných funkcií v rámci triedy. Tieto nie sú určené na použitie externým kódom. V Pythone sú súkromné ​​metódy označené dvojitým podčiarkovníkom pred ich názvom.

Príklad

 __method_name 

Ako definovať súkromnú metódu v Pythone?

Keď chce programátor definovať súkromnú metódu v Pythone, potom musí pred názov metódy pridať predponu dvojitého podčiarknutia. Tu je príklad:

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

Výkon:

Súkromná metóda Pythonu

Vysvetlenie:

Vo vyššie uvedenom príklade sme definovali triedu s názvom MyClass. Má súkromnú metódu s názvom __private_method. Táto metóda sa volá z konštruktora triedy (__init__) pomocou self.__private_method(). Keďže metóda má predponu dvojitého podčiarknutia, je súkromná a mimo triedy k nej nie je možné pristupovať.

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

Výkon:

Súkromná metóda Pythonu

Vysvetlenie:

Poskytnutý kód definuje triedu Bankový účet s metódami na vkladanie a výber prostriedkov, zobrazenie zostatku na účte a tlač výpisu z účtu. Potom sa vytvorí inštancia tejto triedy a vykonajú sa s ňou nejaké transakcie, po ktorých nasleduje tlač výpisu.

Výhody súkromných metód v Pythone

    Zapuzdrenie:Súkromné ​​metódy pomáhajú dosiahnuť zapuzdrenie. Je to základný princíp objektovo orientovaného programovania. Tým, že sa určité metódy stanú súkromnými, môže programátor kontrolovať, ako sa z externého kódu pristupuje k interným funkciám triedy. To robí triedu bezpečnejšou a pomáha predchádzať nechceným zmenám v správaní triedy.Opätovná použiteľnosť kódu:Súkromné ​​metódy môžu byť použité na implementáciu interných funkcií, ktoré je možné opätovne použiť v rámci triedy. To môže pomôcť znížiť duplicitu kódu a zlepšiť udržiavateľnosť kódu.Jednoduché ladenie:Súkromné ​​metódy sú prístupné iba v rámci triedy, čo uľahčuje ladenie kódu izoláciou správania triedy.

Nevýhody súkromných metód v Pythone

    Obmedzený prístup:Súkromné ​​metódy sú prístupné iba v rámci triedy, v ktorej sú definované. To znamená, že ak programátor potrebuje získať prístup k funkciám súkromnej metódy mimo triedy, potom musí vytvoriť verejnú metódu, ktorá volá súkromnú metódu. To môže pridať ďalšiu zložitosť kódu.Falošný pocit bezpečia:Súkromné ​​metódy Pythonu nie sú skutočne súkromné. Stále je možné k nim pristupovať mimo triedy pomocou syntaxe _classname__methodname(). Toto sa však považuje za zlý postup a treba sa mu vyhnúť.Zvýšená zložitosť:Použitie súkromných metód môže zvýšiť zložitosť kódu, čo sťaží pochopenie a údržbu. To môže platiť najmä vtedy, ak sú súkromné ​​metódy nedostatočne zdokumentované.

Záver

Súkromné ​​metódy v Pythone sú užitočnou funkciou, ktorá môže pomôcť dosiahnuť zapuzdrenie a zlepšiť udržiavateľnosť kódu. Aj keď majú určité nevýhody, výhody používania súkromných metód v Pythone prevažujú nad nevýhodami.