logo

Питхон приватни метод

Увод

У Питхон-у, приватни метод је метод који није намењен да се користи изван класе у којој је дефинисан. Ове методе су означене префиксом двоструке доње црте (__) испред њиховог имена и може им се приступити само унутар класе у којој су дефинисане. У овом чланку ћемо разговарати о концепту приватних метода у Питхон-у, њиховим предностима и недостацима и како их користити на примерима.

Шта је приватни метод у Питхон-у?

Приватни метод је метод који није намењен да се користи изван класе у којој је дефинисан. Ове методе се користе за имплементацију интерне функционалности унутар класе. Они нису намењени да их користи спољни код. У Питхон-у, приватне методе су означене префиксом двоструке доње црте испред њиховог имена.

Пример

 __method_name 

Како дефинисати приватни метод у Питхон-у?

Када програмер жели да дефинише приватну методу у Питхон-у, онда програмер треба да дода префикс двоструке доње црте испред назива методе. Ево примера:

Програм 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() 

Излаз:

Питхон приватни метод

Објашњење:

У горњем примеру дефинисали смо класу под називом МиЦласс. Има приватни метод који се зове __привате_метход. Овај метод се позива из конструктора класе (__инит__) користећи селф.__привате_метход(). Пошто метод има префикс двоструке доње црте, он је приватан и не може му се приступити изван класе.

Програм 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() 

Излаз:

Питхон приватни метод

Објашњење:

Достављени код дефинише класу БанкАццоунт са методама за депоновање и повлачење средстава, приказ стања рачуна и штампање извода рачуна. Затим се креира инстанца ове класе и са њом се врше неке трансакције, након чега следи штампање изјаве.

Предности приватних метода у Питхон-у

    Енкапсулација:Приватне методе помажу у постизању инкапсулације. То је основни принцип објектно оријентисаног програмирања. Постављањем одређених метода приватним, програмер може да контролише како се интерној функционалности класе приступа из спољашњег кода. Ово чини класу безбеднијом и помаже у спречавању нежељених промена у понашању класе.Поновна употреба кода:Приватне методе се могу користити за имплементацију интерне функционалности која се може поново користити у оквиру класе. Ово може помоћи у смањењу дуплирања кода и побољшању могућности одржавања кода.Лако отклањање грешака:Приватне методе су доступне само унутар класе, што олакшава отклањање грешака кода изоловањем понашања класе.

Недостаци приватних метода у Питхон-у

    Ограничен приступ:Приватне методе су доступне само унутар класе у којој су дефинисане. То значи да ако програмер треба да приступи функционалности приватне методе изван класе, онда треба да креира јавни метод који позива приватни метод. Ово може додати додатну сложеност коду.Лажни осећај сигурности:Питхон-ове приватне методе нису заиста приватне. И даље им је могуће приступити ван класе користећи синтаксу _цласснаме__метходнаме(). Међутим, ово се сматра лошом праксом и треба је избегавати.Повећана сложеност:Употреба приватних метода може повећати сложеност кода, што отежава разумевање и одржавање. Ово може бити посебно тачно ако су приватне методе лоше документоване.

Закључак

Приватне методе у Питхон-у су корисна функција која може помоћи у постизању инкапсулације и побољшању могућности одржавања кода. Иако имају неке недостатке, предности коришћења приватних метода у Питхон-у су веће од недостатака.