logo

Soukromá metoda Pythonu

Úvod

V Pythonu je soukromá metoda metoda, která není určena k použití mimo třídu, ve které je definována. Tyto metody jsou označeny dvojitou předponou podtržítka (__) před svým názvem a lze k nim přistupovat pouze v rámci třídy, kde jsou definovány. V tomto článku se budeme zabývat konceptem soukromých metod v Pythonu, jejich výhodami a nevýhodami a jak je používat s příklady.

Co je soukromá metoda v Pythonu?

Soukromá metoda je metoda, která není určena k použití mimo třídu, ve které je definována. Tyto metody se používají k implementaci vnitřní funkčnosti v rámci třídy. Tyto nejsou určeny k použití externím kódem. V Pythonu jsou soukromé metody označeny dvojitým podtržítkem před jejich názvem.

Příklad

 __method_name 

Jak definovat soukromou metodu v Pythonu?

Když chce programátor v Pythonu definovat soukromou metodu, musí před název metody přidat předponu dvojitého podtržení. Zde je pří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ýstup:

Soukromá metoda Pythonu

Vysvětlení:

Ve výše uvedeném příkladu jsme definovali třídu s názvem MyClass. Má soukromou metodu nazvanou __private_method. Tato metoda je volána z konstruktoru třídy (__init__) pomocí self.__private_method(). Protože má metoda předponu dvojitého podtržení, je soukromá a nelze k ní přistupovat mimo třídu.

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ýstup:

Soukromá metoda Pythonu

Vysvětlení:

Poskytnutý kód definuje třídu Bankovní účet s metodami pro vkládání a výběr prostředků, zobrazení zůstatku na účtu a tisk výpisu z účtu. Poté je vytvořena instance této třídy a jsou s ní provedeny některé transakce, po kterých následuje tisk příkazu.

Výhody privátních metod v Pythonu

    Zapouzdření:Soukromé metody pomáhají dosáhnout zapouzdření. Je to základní princip objektově orientovaného programování. Nastavením určitých metod na soukromé může programátor řídit, jak se z externího kódu přistupuje k interním funkcím třídy. Tím je třída bezpečnější a pomáhá předcházet nechtěným změnám v chování třídy.Znovupoužitelnost kódu:Soukromé metody lze použít k implementaci interní funkčnosti, kterou lze v rámci třídy znovu použít. To může pomoci snížit duplicitu kódu a zlepšit jeho udržovatelnost.Snadné ladění:Soukromé metody jsou přístupné pouze v rámci třídy, což usnadňuje ladění kódu izolováním chování třídy.

Nevýhody privátních metod v Pythonu

    Omezený přístup:Soukromé metody jsou přístupné pouze v rámci třídy, ve které jsou definovány. To znamená, že pokud programátor potřebuje přistupovat k funkcím privátní metody z vnějšku třídy, musí vytvořit veřejnou metodu, která volá privátní metodu. To může přidat další složitost kódu.Falešný pocit bezpečí:Soukromé metody Pythonu nejsou skutečně soukromé. Stále je možné k nim přistupovat mimo třídu pomocí syntaxe _classname__methodname(). To je však považováno za špatný postup a je třeba se mu vyhnout.Zvýšená složitost:Použití soukromých metod může zvýšit složitost kódu, což ztíží jeho pochopení a údržbu. To může platit zejména v případě, že soukromé metody jsou špatně zdokumentovány.

Závěr

Soukromé metody v Pythonu jsou užitečnou funkcí, která může pomoci dosáhnout zapouzdření a zlepšit udržovatelnost kódu. I když mají některé nevýhody, výhody používání soukromých metod v Pythonu převažují nad nevýhodami.