logo

Python privātā metode

Ievads

Python privātā metode ir metode, kuru nav paredzēts izmantot ārpus klases, kurā tā ir definēta. Šīs metodes ir apzīmētas ar dubultu pasvītrojuma prefiksu (__) pirms to nosaukuma, un tām var piekļūt tikai tajā klasē, kurā tās ir definētas. Šajā rakstā mēs ar piemēriem apspriedīsim privāto metožu jēdzienu Python, to priekšrocības un trūkumus, kā arī to izmantošanu.

Kas ir privātā metode Python?

Privātā metode ir metode, kuru nav paredzēts izmantot ārpus klases, kurā tā ir definēta. Šīs metodes tiek izmantotas, lai ieviestu klases iekšējo funkcionalitāti. Tie nav paredzēti ārējam kodam. Programmā Python privātās metodes tiek apzīmētas ar dubultu pasvītra prefiksu pirms to nosaukuma.

Piemērs

 __method_name 

Kā Python definēt privāto metodi?

Ja programmētājs vēlas definēt privātu metodi Python, programmētājam pirms metodes nosaukuma jāpievieno dubults pasvītra prefikss. Šeit ir piemērs:

1. programma:

 class MyClass: def __init__(self): self.__private_method() def __private_method(self): print('This is a private method.') # Instantiate, the class my_obj = MyClass() 

Izvade:

Python privātā metode

Paskaidrojums:

Iepriekš minētajā piemērā mēs esam definējuši klasi ar nosaukumu MyClass. Tam ir privāta metode, ko sauc par __private_method. Šī metode tiek izsaukta no klases konstruktora (__init__), izmantojot self.__private_method(). Tā kā metodei ir dubults pasvītra prefikss, tā ir privāta un tai nevar piekļūt ārpus klases.

2. programma:

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

Izvade:

Python privātā metode

Paskaidrojums:

Norādītais kods definē BankAccount klasi ar līdzekļu iemaksas un izņemšanas metodēm, konta atlikuma attēlošanu un konta izraksta drukāšanu. Pēc tam tiek izveidots šīs klases gadījums, ar to tiek veikti daži darījumi, kam seko paziņojuma drukāšana.

Privāto metožu priekšrocības Python

    Iekapsulēšana:Privātas metodes palīdz panākt iekapsulēšanu. Tas ir objektorientētas programmēšanas pamatprincips. Padarot noteiktas metodes privātas, programmētājs var kontrolēt, kā klases iekšējai funkcionalitātei tiek piekļūts no ārējā koda. Tas padara nodarbību drošāku un palīdz novērst nevēlamas izmaiņas klases uzvedībā.Koda atkārtota izmantošana:Privātās metodes var izmantot, lai ieviestu iekšējo funkcionalitāti, ko var atkārtoti izmantot klasē. Tas var palīdzēt samazināt koda dublēšanos un uzlabot koda apkopi.Vienkārša atkļūdošana:Privātās metodes ir pieejamas tikai klasē, tādējādi atvieglojot koda atkļūdošanu, izolējot klases uzvedību.

Python privāto metožu trūkumi

    Ierobežota piekļuve:Privātās metodes ir pieejamas tikai tajā klasē, kurā tās ir definētas. Tas nozīmē, ka, ja programmētājam ir jāpiekļūst privātās metodes funkcionalitātei ārpus klases, viņam ir jāizveido publiska metode, kas izsauc privāto metodi. Tas var padarīt kodu papildu sarežģītību.Viltus drošības sajūta:Python privātās metodes nav īsti privātas. Joprojām ir iespējams tiem piekļūt ārpus klases, izmantojot sintaksi _classname__methodname(). Tomēr tas tiek uzskatīts par sliktu praksi, un no tā vajadzētu izvairīties.Paaugstināta sarežģītība:Privāto metožu izmantošana var palielināt koda sarežģītību, padarot to grūtāk saprotamu un apkoptu. Tas var būt īpaši aktuāli, ja privātās metodes ir slikti dokumentētas.

Secinājums

Privātās metodes Python ir noderīga funkcija, kas var palīdzēt panākt iekapsulēšanu un uzlabot koda apkopi. Lai gan tām ir daži trūkumi, Python privāto metožu izmantošanas priekšrocības pārsniedz trūkumus.