logo

Python privatus metodas

Įvadas

Python privatus metodas yra metodas, kuris nėra skirtas naudoti už klasės, kurioje jis yra apibrėžtas, ribų. Šie metodai yra pažymėti dvigubu pabraukimo priešdėliu (__) prieš jų pavadinimą ir juos galima pasiekti tik toje klasėje, kurioje jie yra apibrėžti. Šiame straipsnyje aptarsime privačių Python metodų sampratą, jų privalumus ir trūkumus bei kaip juos naudoti su pavyzdžiais.

Kas yra privatus metodas Python?

Privatus metodas yra metodas, kuris nėra skirtas naudoti už klasės, kurioje jis apibrėžtas, ribų. Šie metodai naudojami vidinėms klasės funkcijoms įgyvendinti. Jie nėra skirti naudoti išoriniam kodui. Python privatūs metodai žymimi dvigubu pabraukimo priešdėliu prieš jų pavadinimą.

Pavyzdys

 __method_name 

Kaip apibrėžti privatų metodą Python?

Kai programuotojas nori apibrėžti privatų metodą Python, programuotojas turi pridėti dvigubą pabraukimo priešdėlį prieš metodo pavadinimą. Štai pavyzdys:

1 programa:

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

Išvestis:

Python privatus metodas

Paaiškinimas:

Aukščiau pateiktame pavyzdyje apibrėžėme klasę, vadinamą MyClass. Jis turi privatų metodą, vadinamą __private_method. Šis metodas iškviečiamas iš klasės konstruktoriaus (__init__), naudojant self.__private_method(). Kadangi metodas turi dvigubą pabraukimo priešdėlį, jis yra privatus ir negali būti pasiekiamas už klasės ribų.

2 programa:

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

Išvestis:

Python privatus metodas

Paaiškinimas:

Pateiktas kodas apibrėžia BankAccount klasę su lėšų įnešimo ir išėmimo būdais, sąskaitos likučio rodymu ir sąskaitos išrašo spausdinimu. Tada sukuriamas šios klasės egzempliorius, su juo atliekamos tam tikros operacijos, o po to išspausdinamas pareiškimas.

„Python“ privačių metodų pranašumai

    Inkapsuliavimas:Privatūs metodai padeda pasiekti kapsuliavimą. Tai yra pagrindinis objektinio programavimo principas. Padarydamas tam tikrus metodus privačius, programuotojas gali kontroliuoti, kaip iš išorinio kodo pasiekiamos klasės vidinės funkcijos. Taip klasė tampa saugesnė ir padeda išvengti nepageidaujamų klasės elgesio pokyčių.Kodo pakartotinis naudojimas:Privatūs metodai gali būti naudojami vidinėms funkcijoms įgyvendinti, kurios gali būti pakartotinai naudojamos klasėje. Tai gali padėti sumažinti kodo dubliavimą ir pagerinti kodo priežiūrą.Lengvas derinimas:Privatūs metodai pasiekiami tik klasėje, todėl kodą lengviau derinti išskiriant klasės elgesį.

„Python“ privačių metodų trūkumai

    Ribotas priėjimas:Privatūs metodai pasiekiami tik toje klasėje, kurioje jie yra apibrėžti. Tai reiškia, kad jei programuotojas turi pasiekti privataus metodo funkcijas ne iš klasės, tada jis turi sukurti viešąjį metodą, kuris iškviečia privatų metodą. Tai gali suteikti kodui papildomo sudėtingumo.Klaidingas saugumo jausmas:Privatūs Python metodai nėra iš tikrųjų privatūs. Vis dar galima juos pasiekti už klasės ribų naudojant _classname__methodname() sintaksę. Tačiau tai laikoma bloga praktika ir jos reikėtų vengti.Padidėjęs sudėtingumas:Privačių metodų naudojimas gali padidinti kodo sudėtingumą, todėl jį sunkiau suprasti ir prižiūrėti. Tai gali būti ypač aktualu, jei privatūs metodai yra prastai dokumentuoti.

Išvada

Privatūs Python metodai yra naudinga funkcija, kuri gali padėti pasiekti inkapsuliavimą ir pagerinti kodo priežiūrą. Nors jie turi tam tikrų trūkumų, privačių metodų naudojimo Python pranašumai nusveria trūkumus.