python oops concepts python classes
ООП концепти у Питхону: Класе и објекти Питхон, наслеђивање, преоптерећење, замена и скривање података
У претходном упутству смо пронашли неке од Улазно / излазне операције које Питхон пружа.
Сазнали смо како да користимо ове функције за читање података од корисника или из спољних извора, као и како да те податке упишемо у спољне изворе. Такође смо научили како огроман код поделити на мање методе помоћу функција и како их позвати или им приступити.
Даље читање => Експлицитни опсег бесплатних водича за обуку за Питхон
У овом упутству ћемо размотрити напредни концепт Питхон назван ООП и различите типове оопс концепата који су доступни у Питхону и како и где их користити.
Шта ћете научити:
- Погледајте ВИДЕО водиче
- Часови и предмети
- Конструктор у Питхону
- Наслеђивање
- Преоптерећење метода у Питхону
- Надјачавање метода у Питхону
- Сакривање података у Питхону
- Закључак
- Препоручено читање
Погледајте ВИДЕО водиче
Видео бр. 1: Класа, објекти и конструктори у Питхону
Видео бр. 2: Концепт наслеђивања у Питхону
Видео бр. 3: Преоптерећење, замена и скривање података у Питхону
Часови и предмети
- Питхон је објектно оријентисани програмски језик где програмирање више наглашава објекте.
- Готово све у Питхону су објекти.
Предавања
Класа у Питхону је колекција предмета, можемо је сматрати планом или скицом или прототипом. Садржи све детаље објекта.
У примеру из стварног света, животиња је класа, јер у свету имамо различите врсте животиња и све оне припадају класи која се зове животиње.
Дефинисање класе
У Питхону бисмо требали дефинисати класу помоћу кључне речи „цласс“.
Синтакса:
class classname: #Collection of statements or functions or classes
Пример:
class MyClass: a = 10 b = 20 def add(): sum = a+b print(sum)
У горњем примеру, прогласили смо класу названу „Мицласс“ и прогласили смо и дефинисали неке променљиве и функције.
Да бисмо приступили оним функцијама или променљивим присутним унутар класе, можемо користити име класе тако што ћемо створити њен објекат.
Прво, да видимо како да приступимо онима који користе име класе.
Пример:
class MyClass: a = 10 b = 20 #Accessing variable present inside MyClass print(MyClass.a)
Оутпут
10
Излаз:
Предмети
Објекат је обично инстанца класе. Користи се за приступ свему присутном унутар класе.
Креирање објекта
Синтакса:
variablename = classname
Пример:
пл скл питање и одговор на интервју
ob = MyClass()
Ово ће створити нови објект инстанце под називом „об“. Коришћењем овог имена објекта можемо приступити свим атрибутима присутним унутар класе МиЦласс.
Пример:
class MyClass: a = 10 b = 20 def add(self): sum = self.a + self.b print(sum) #Creating an object of class MyClass ob = MyClass() #Accessing function and variables present inside MyClass using the object print(ob.a) print(ob.b) ob.add()
Излаз:
10
двадесет
30
Излаз:
Конструктор у Питхону
Конструктор у Питхону је посебна метода која се користи за иницијализацију чланова класе током времена извршавања када се креира објекат.
У Питхону имамо неке посебне уграђене методе класе које почињу двоструким доњим подвлачењем (__) и имају посебно значење у Питхону.
Име конструктора ће увек бити __инит __ ().
Свака класа мора да има конструктор, чак и ако конструктор не креирате експлицитно, он ће сам створити задани конструктор.
Пример:
class MyClass: sum = 0 def __init__ (self, a, b): self.sum = a+b def printSum(self): print(“Sum of a and b is: ”, self.sum) #Creating an object of class MyClass ob = MyClass(12, 15) ob.printSum()
Излаз:
Збир а и б је: 27
Излаз:
Ако уочимо у горњем примеру, не позивамо методу __инит __ (), јер ће се аутоматски позвати када креирамо објекат за ту класу и иницијализујемо чланове података ако постоје.
Увијек имајте на уму да конструктор никада неће вратити никакве вриједности, стога не садржи изјаве за повратак.
Наслеђивање
Наслеђивање је један од најмоћнијих концепата ООП-а.
Класа која наслеђује својства друге класе назива се Наслеђивање.
Класа која наслеђује својства назива се подређена класа / подкласа, а класа из које се својства наслеђују родитељска класа / основна класа.
Питхон пружа три врсте наслеђивања:
- Наслеђивање појединачно
- Наслеђивање на више нивоа
- Вишеструко наслеђивање
Препоручено читање = >> Наслеђивање у Јави
# 1) Једно наслеђивање
У појединачном наслеђивању, једна класа ће наследити својства само једне класе.
Пример:
class Operations: a = 10 b = 20 def add(self): sum = self.a + self.b print(“Sum of a and b is: “, sum) class MyClass(Operations): c = 50 d = 10 def sub(self): sub = self.c – self.d print(“Subtraction of c and d is: ”, sub) ob = MyClass() ob.add() ob.sub()
Излаз:
Збир а и б је: 30
Одузимање ц и д је: 40
Излаз:
разлика између тестирања система и тестирања прихватљивости корисника
У горњем примеру, наследимо својства класе „Операције“ у класу „МиЦласс“.
Дакле, можемо приступити свим методама или изразима присутним у класи ‘Операције’ помоћу објеката МиЦласс.
# 2) Наслеђивање на више нивоа
У наслеђивању на више нивоа, једна или више класа делује као основна класа.
Што значи да ће друга класа наследити својства прве класе, а трећа класа својства друге класе. Дакле, друга класа ће деловати и као родитељска класа и као дете.
Пример:
class Addition: a = 10 b = 20 def add(self): sum = self.a + self.b print(“Sum of a and b is: ”, sum) class Subtraction(Addition): def sub(self): sub = self.b-self.a print(“Subtraction of a and b is: ”, sub) class Multiplication(Subtraction): def mul(self): multi = self.a * self.b print(“Multiplication of a and b is: ”, multi) ob = Multiplication () ob.add() ob.sub() ob.mul()
Излаз:
Збир а и б је: 30
Одузимање а и б је: 10
Множење а и б је: 200
Излаз:
У горњем примеру, класа „Одузимање“ наслеђује својства класе „Сабирање“, а класа „Множење“ наследиће особине класе „Одузимање“. Дакле, класа „Одузимање“ ће деловати и као основна класа и као изведена класа.
# 3) Вишеструко наслеђивање
Класа која наслеђује својства више класа назива се вишеструко наслеђивање.
Даље читање = >> Да ли Јава подржава вишеструко наслеђивање?
Пример:
class Addition: a = 10 b = 20 def add(self): sum = self. a+ self.b print(“Sum of a and b is: “, sum) class Subtraction(): c = 50 d = 10 def sub(self): sub = self.c-self.d print(“Subtraction of c and d is: ”, sub) class Multiplication(Addition,Subtraction): def mul(self): multi = self.a * self.c print(“Multiplication of a and c is: ”, multi) ob = Multiplication () ob.add() ob.sub() ob.mul()
Излаз:
Збир а и б је: 30
Одузимање ц и д је: 10
Множење а и ц је: 500
Излаз:
Преоптерећење метода у Питхону
Више метода са истим именом, али са различитим типом параметара или различитим бројем параметара назива се преоптерећење метода
Пример:
def product(a, b): p = a*b print(p) def product(a, b, c): p = a*b*c print(p) #Gives you an error saying one more argument is missing as it updated to the second function #product(2, 3) product(2, 3, 5)
Излаз:
30
Излаз:
Излаз:
Преоптерећење метода није подржано у Питхону, јер ако видимо у горњем примеру, дефинисали смо две функције са истим називом „производ“, али са различитим бројем параметара.
Али у Питхону, најновији дефинисани ће се ажурирати, па ће производ производа (а, б) постати бескористан.
како извући .7з датотеке на мац
Надјачавање метода у Питхону
Ако метода подкласе има исто име које је декларисано у методи суперкласе, онда се зове Метход оверридинг
Да бисмо постигли надјачавање метода, морамо користити наслеђивање.
Пример:
class A: def sayHi(): print(“I am in A”) class B(A): def sayHi(): print(“I am in B”) ob = B() ob.sayHi()
Излаз:
Ја сам у Б.
Излаз:
Сакривање података у Питхону
Сакривање података значи учинити податке приватним, тако да неће бити доступни осталим члановима разреда. Може му се приступити само у класи у којој је декларисан.
У питхону, ако желимо да сакријемо променљиву, тада морамо да напишемо двоструко подвлачење (__) пре имена променљиве.
Пример:
Class MyClass: __num = 10 def add(self, a): sum = self.__num + a print(sum) ob = MyClass() ob.add(20) print(ob.__num) #The above statement gives an error because we are trying to access private variable outside the class
Излаз:
30
Трацебацк (последњи последњи позив):
Датотека „ДатаХидинг.пи“, ред 10, у
одштампај
АттрибутеЕррор: инстанца МиЦласс има
нема атрибут ‘__нум
Излаз:
Закључак
Класа је нацрт или предложак који садржи све детаље објекта, где је објекат инстанца класе.
- Ако желимо да својства друге класе добијемо у класи, то се може постићи наслеђивањем.
- Наслеђивање је 3 врсте - једно наследство, наслеђивање на више нивоа и више наслеђа.
- Преоптерећење метода није подржано у Питхону.
- Замена методе користи се за поништавање имплементације исте функције која је дефинисана у другој класи.
- Атрибуте података можемо учинити приватним или их сакрити тако да им неће бити доступан изван класе у којој је дефинисан.
Наш предстојећи водич детаљно ће објаснити више о додатним концептима Питхона !!
ПРЕВ Туториал |. | СЛЕДЕЋА Лекција
Препоручено читање
- Питхон променљиве
- Водич за Питхон ДатеТиме са примерима
- Питхон Стринг функције
- Питхон Водич за почетнике (Практични БЕСПЛАТНИ Питхон тренинг)
- Изјаве о контроли Питхона (Питхон Цонтинуе, Бреак анд Пасс)
- Питхон Оператори
- Питхон функције
- Питхон процес увођења и инсталације