python oops concepts python classes
OOPs концепции в Python: Класове и обекти на Python, наследяване, претоварване, заместване и скриване на данни
В предишния урок разгледахме някои от Операции за въвеждане / извеждане които Python предоставя.
Разбрахме как да използваме тези функции, за да четем данните от потребителя или от външни източници, както и как да записваме тези данни във външни източници. Също така научихме как да разделяме огромен код на по-малки методи с помощта на функции и как да ги извикваме или да осъществяваме достъп до тях.
Допълнително четене => Изричен набор от безплатни уроци за обучение на Python
В този урок ще обсъдим концепцията за усъвършенстван Python, наречена OOP, и различни видове oops концепции, които се предлагат в Python, и как и къде да ги използваме.
Какво ще научите:
- Гледайте ВИДЕО уроците
- Класове и обекти
- Конструктор в Python
- Наследяване
- Претоварване на метод в Python
- Замяна на метода в Python
- Скриване на данни в Python
- Заключение
- Препоръчително четене
Гледайте ВИДЕО уроците
Видео №1: Клас, обекти и конструктор в Python
Видео №2: Концепция за наследяване в Python
Видео # 3: Претоварване, заместване и скриване на данни в Python
Класове и обекти
- Python е обектно-ориентиран език за програмиране, където програмирането набляга повече на обектите.
- Почти всичко в Python е обекти.
Класове
Класът в Python е колекция от обекти, ние можем да мислим за клас като план или скица или прототип. Той съдържа всички подробности за обект.
В реалния пример Animal е клас, защото имаме различни видове животни в света и всички те принадлежат към клас, наречен Animal.
Определяне на клас
В Python трябва да дефинираме клас, използвайки ключовата дума ‘class’.
Синтаксис:
class classname: #Collection of statements or functions or classes
Пример:
class MyClass: a = 10 b = 20 def add(): sum = a+b print(sum)
В горния пример декларирахме класа, наречен ‘Myclass’ и декларирахме и дефинирахме съответно някои променливи и функции.
За достъп до тези функции или променливи, присъстващи в класа, можем да използваме името на класа, като създадем обект от него.
Първо, нека видим как да осъществим достъп до тези, които използват името на класа.
Пример:
class MyClass: a = 10 b = 20 #Accessing variable present inside MyClass print(MyClass.a)
Изход
10
Изход:
c ++ конвертира char в низ
Обекти
Обектът обикновено е екземпляр на клас. Използва се за достъп до всичко присъстващо в класа.
Създаване на обект
Синтаксис:
variablename = classname
Пример:
ob = MyClass()
Това ще създаде нов обект на екземпляр, наречен ‘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
Изход:
Конструктор в Python
Конструкторът в Python е специален метод, който се използва за инициализиране на членовете на клас по време на изпълнение, когато се създава обект.
В Python имаме някои специални вградени методи на клас, които започват с двойно подчертаване (__) и имат специално значение в Python.
Името на конструктора винаги ще бъде __init __ ().
Всеки клас трябва да има конструктор, дори ако не създадете конструктор изрично, той сам ще създаде конструктор по подразбиране.
Пример:
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()
Изход:
Сумата на a и b е: 27
Изход:
Ако наблюдаваме в горния пример, ние не извикваме метода __init __ (), защото той ще бъде извикан автоматично, когато създадем обект към този клас и инициализираме членовете на данните, ако има такива.
Винаги помнете, че конструкторът никога няма да върне никакви стойности, следователно не съдържа никакви оператори за връщане.
Наследяване
Наследяването е една от най-мощните концепции за ООП.
Клас, който наследява свойствата на друг клас, се нарича наследяване.
Класът, който наследява свойствата, се нарича детски клас / подклас, а класът, от който се наследяват свойствата, се нарича родителски клас / основен клас.
Python предоставя три вида наследяване:
- Единично наследяване
- Наследяване на много нива
- Множествено наследяване
Препоръчително четене = >> Наследяване в Java
# 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()
Изход:
Сумата на a и b е: 30
Изваждането на c и d е: 40
Изход:
кой е най-добрият софтуер за оптимизация на компютър
В горния пример наследяваме свойствата на класа ‘Operations’ в класа ‘MyClass’.
Следователно ние можем да осъществим достъп до всички методи или изрази, присъстващи в класа ‘Operations’, като използваме обектите MyClass.
# 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()
Изход:
Сумата на a и b е: 30
Изваждане на a и b е: 10
Умножението на a и b е: 200
Изход:
В горния пример клас ‘Subtraction’ наследява свойствата на клас ‘Addition’, а клас ‘Multiplication’ ще наследява свойствата на клас ‘Subtraction’. Така че класът „Изваждане“ ще действа и като основен клас, и като производен клас.
# 3) Множествено наследяване
Класът, който наследява свойствата на множество класове, се нарича Multiple Inheritance.
Допълнително четене = >> Поддържа ли Java множествено наследяване?
Пример:
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()
Изход:
Сумата на a и b е: 30
Изваждане на c и d е: 10
Умножението на a и c е: 500
Изход:
Претоварване на метод в Python
Няколко метода с едно и също име, но с различен тип параметри или различен брой параметри се наричат Метод претоварване
Пример:
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
Изход:
широчина първо търсене c ++ дърво
Изход:
Претоварването на метода не се поддържа в Python, защото ако видим в горния пример, ние сме дефинирали две функции със същото име ‘продукт’, но с различен брой параметри.
Но в Python ще се актуализира последната дефиниция, поради което функционалният продукт (a, b) ще стане безполезен.
Замяна на метода в Python
Ако методът на подклас има същото име, което е декларирано в метода на суперкласа, тогава той се нарича Метод за отмяна
За да постигнем заместване на метода, трябва да използваме наследяване.
Пример:
class A: def sayHi(): print(“I am in A”) class B(A): def sayHi(): print(“I am in B”) ob = B() ob.sayHi()
Изход:
Аз съм в Б
Изход:
Скриване на данни в Python
Скриването на данни означава да направите данните частни, така че да не бъдат достъпни за останалите членове на класа. Той може да бъде достъпен само в класа, където е деклариран.
В python, ако искаме да скрием променливата, трябва да напишем двойно подчертаване (__) преди името на променливата.
Пример:
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
Traceback (последно последно обаждане):
Файл „DataHiding.py“, ред 10, в
печат (дължимо ли е .__)
AttributeError: Примерът MyClass има
без атрибут ‘__num
Изход:
Заключение
Класът е план или шаблон, който съдържа всички подробности за обект, където обектът е екземпляр на клас.
- Ако искаме да получим свойствата на друг клас в клас, тогава това може да се постигне чрез наследяване.
- Наследяването е от 3 вида - Единично наследяване, Многостепенно наследяване и Множествено наследяване.
- Претоварването на метода не се поддържа в Python.
- Замяна на метода се използва за отмяна на изпълнението на същата функция, която е дефинирана в друг клас.
- Можем да направим атрибутите на данните като частни или да ги скрием, така че да не бъдат достъпни извън класа, където са дефинирани.
Предстоящият ни урок ще обясни подробно повече за допълнителните концепции на Python !!
Препоръчително четене
- Променливи на Python
- Урок за Python DateTime с примери
- Функции на низовете на Python
- Урок за Python за начинаещи (практически БЕЗПЛАТНО обучение за Python)
- Изявления за контрол на Python (Python Continue, Break and Pass)
- Оператори на Python
- Функции на Python
- Процес на въвеждане и инсталиране на Python