logo

Python privat metod

Introduktion

I Python är en privat metod en metod som inte är avsedd att användas utanför klassen där den är definierad. Dessa metoder betecknas med ett dubbelt understrecksprefix (__) före deras namn, och de kan endast nås inom den klass där de är definierade. I den här artikeln kommer vi att diskutera konceptet med privata metoder i Python, deras fördelar och nackdelar, och hur man använder dem med exempel.

Vad är en privat metod i Python?

En privat metod är en metod som inte är avsedd att användas utanför klassen där den är definierad. Dessa metoder används för att implementera intern funktionalitet inom klassen. Dessa är inte avsedda att användas av extern kod. I Python betecknas privata metoder med ett dubbelt understrecksprefix före deras namn.

Exempel

 __method_name 

Hur definierar man en privat metod i Python?

När programmeraren vill definiera en privat metod i Python måste programmeraren lägga till ett dubbelt understrecksprefix före metodnamnet. Här är ett exempel:

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

Produktion:

Python privat metod

Förklaring:

I exemplet ovan har vi definierat en klass som heter MyClass. Den har en privat metod som heter __private_method. Denna metod anropas från klasskonstruktorn (__init__) med self.__private_method(). Eftersom metoden har ett dubbelt understrecksprefix är den privat och kan inte nås utanför klassen.

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

Produktion:

Python privat metod

Förklaring:

Den tillhandahållna koden definierar en bankkontoklass med metoder för att sätta in och ta ut pengar, visa kontosaldot och skriva ut ett kontoutdrag. En instans av denna klass skapas sedan och några transaktioner görs till den, följt av att ett uttalande skrivs ut.

Fördelar med privata metoder i Python

    Inkapsling:Privata metoder hjälper till att uppnå inkapsling. Det är en grundläggande princip för objektorienterad programmering. Genom att göra vissa metoder privata kan programmeraren styra hur klassens interna funktionalitet nås från extern kod. Detta gör klassen säkrare och hjälper till att förhindra oönskade förändringar av klassens beteende.Kodåteranvändbarhet:Privata metoder kan användas för att implementera intern funktionalitet som kan återanvändas inom klassen. Detta kan hjälpa till att minska kodduplicering och förbättra kodunderhållbarheten.Enkel felsökning:Privata metoder är endast tillgängliga inom klassen, vilket gör det lättare att felsöka kod genom att isolera klassens beteende.

Nackdelar med privata metoder i Python

    Begränsad åtkomst:Privata metoder är endast tillgängliga inom den klass där de är definierade. Detta betyder att om programmeraren behöver komma åt funktionaliteten för en privat metod från utanför klassen, måste de skapa en offentlig metod som anropar den privata metoden. Detta kan lägga till ytterligare komplexitet till koden.Falsk känsla av säkerhet:Pythons privata metoder är inte riktigt privata. Det är fortfarande möjligt att komma åt dem utanför klassen med syntaxen _classname__methodname(). Detta anses dock vara dålig praxis och bör undvikas.Ökad komplexitet:Användningen av privata metoder kan öka kodens komplexitet, vilket gör den svårare att förstå och underhålla. Detta kan särskilt gälla om de privata metoderna är dåligt dokumenterade.

Slutsats

Privata metoder i Python är en användbar funktion som kan hjälpa till att uppnå inkapsling och förbättra kodunderhållbarheten. Även om de har vissa nackdelar, uppväger fördelarna med att använda privata metoder i Python nackdelarna.