Python ООП: Клас, Обект, Наследяване и Конструктор
⚡ Умно обобщение
Обектно-ориентирано програмиране в Python организира код около класове и обекти, като обединява свързани данни и поведение. Този подход показва как да се дефинират класове, да се създават обекти, да се прилага наследяване и да се инициализират атрибути с конструктори.

OOPs in Python
OOPs in Python е програмен подход, който се фокусира върху използването на обекти и класове, както и други общи езици за програмиране. Обектите могат да бъдат всякакви обекти от реалния свят. Python позволява на разработчиците да разработват приложения, използвайки OOPs подхода с основен фокус върху повторното използване на кода. Много е лесно да създавате класове и обекти Python.
Какво е клас?
Клас в Python е логична групаping на данни и функции. Това дава свободата за създаване на структури от данни, които съдържат произволно съдържание и следователно са лесно достъпни.
Например, за всеки банков служител, който иска да извлече данните за клиента онлайн, ще отиде на клиентски клас, където ще бъдат изброени всички негови атрибути, като подробности за транзакциите, подробности за теглене и депозити, непогасен дълг и др.
Как да определим Python класове
За да определите класа, трябва да имате предвид следните точки
Стъпка 1) In Python, класовете се дефинират от „Клас“ ключова дума
class myClass():
Стъпка 2) Вътре в класовете можете да дефинирате функции или методи, които са част от този клас
def method1 (self): print "Guru99" def method2 (self,someString): print "Software Testing:" + someString
- Тук сме дефинирали method1, който отпечатва „Guru99. "
- Друг метод, който дефинирахме, е method2, който отпечатва „Тестване на софтуер“ + SomeString. SomeString е променливата, предоставена от извикващия метод
Стъпка 3) Всичко в класа е с отстъп, точно като кода във функцията, цикъла, оператора if и т.н. Всичко, което не е с отстъп, не е в класа
ЗАБЕЛЕЖКА: За използването на „себе си“ в Python
- Самостоятелният аргумент се отнася до самия обект. Оттук и употребата на думата self. Така че в този метод self ще се отнася до конкретния екземпляр на този обект, върху който се извършва операцията.
- Self е името, предпочитано по конвенция от Pythons за указване на първия параметър на методите на екземпляр в Python, Тя е част от Python синтаксис за достъп до членове на обекти
Стъпка 4) Да направим обект от класа
c = myClass()
Стъпка 5) За извикване на метод в клас
c.method1()
c.method2(" Testing is fun")
- Обърнете внимание, че когато извикваме метод1 или метод2, не е необходимо да предоставяме ключовата дума self. Това се обработва автоматично вместо нас от Python време на изпълнение.
- Python времето за изпълнение ще предаде „самостоятелна“ стойност, когато извикате метод на екземпляр на инстанция, независимо дали го предоставяте съзнателно или не
- Просто трябва да се грижите за не-аз аргументите
Стъпка 6) Ето пълния код
# Example file for working with classes
class myClass():
def method1(self):
print("Guru99")
def method2(self,someString):
print("Software Testing:" + someString)
def main():
# exercise the class methods
c = myClass ()
c.method1()
c.method2(" Testing is fun")
if __name__== "__main__":
main()
Как работи наследяването
Наследяването е функция, използвана в обектно-ориентираното програмиране; това се отнася до дефиниране на нов клас с по-малко или никакви модификации на съществуващ клас. Новият клас се нарича производен клас и от тази, която наследява, се нарича база. Python подпомага наследяването; също поддържа множество наследства. Един клас може да наследи атрибути и методи на поведение от друг клас, наречен подклас или клас наследник.
Python Синтаксис на наследяване
class DerivedClass(BaseClass):
body_of_derived_class
Стъпка 1) Изпълнете следния код
# Example file for working with classes
class myClass():
def method1(self):
print("Guru99")
class childClass(myClass):
#def method1(self):
#myClass.method1(self);
#print ("childClass Method1")
def method2(self):
print("childClass method2")
def main():
# exercise the class methods
c2 = childClass()
c2.method1()
#c2.method2()
if __name__== "__main__":
main()
Обърнете внимание, че в childClass, method1 не е дефиниран, а е производен от родителския myClass. Резултатът е „Guru99. "
Стъпка 2) Разкоментирайте ред # 8 и 10. Стартирайте кода
Сега метод 1 е дефиниран в childClass и изходът „childClass Method1“ е показан правилно.
Стъпка 3) Разкоментирайте ред #9. Стартирайте кода
Можете да извикате метод на родителския клас, като използвате синтаксиса
ParentClassName.MethodName(self)
В нашия случай извикваме myClass.method1(self) и Guru99 е отпечатано както се очакваше
Стъпка ) Разкоментирайте ред #19. Стартирайте кода.
Извиква се метод 2 на дъщерния клас и „childClass method2“ се отпечатва според очакванията.
Python конструкторите
Конструкторът е функция от клас, която инстанцира обект до предварително дефинирани стойности.
Започва с двойна долна черта (_). Това е методът __init__()
В примера по-долу вземаме името на потребителя, използвайки конструктор.
class User:
name = ""
def __init__(self, name):
self.name = name
def sayHello(self):
print("Welcome to Guru99, " + self.name)
User1 = User("Alex")
User1.sayHello()
Резултатът ще бъде:
Добре дошли в Guru99, Алекс
Python 2 Пример
Горните кодове са Python 3 примера, ако искате да се включите Python 2, моля, разгледайте следния код.
# How to define Python classes
# Example file for working with classes
class myClass():
def method1(self):
print "Guru99"
def method2(self,someString):
print "Software Testing:" + someString
def main():
# exercise the class methods
c = myClass ()
c.method1()
c.method2(" Testing is fun")
if __name__== "__main__":
main()
#How Inheritance works
# Example file for working with classes
class myClass():
def method1(self):
print "Guru99"
class childClass(myClass):
#def method1(self):
#myClass.method1(self);
#print "childClass Method1"
def method2(self):
print "childClass method2"
def main():
# exercise the class methods
c2 = childClass()
c2.method1()
#c2.method2()
if __name__== "__main__":
main()
Научете следващия ни урок за Полиморфизъм в Python


