OOP на Python: клас, обект, наследяване и конструктор с пример

Съдържание:

Anonim

ООП в Python

OOP в Python е програмен подход, който се фокусира върху използването на обекти и класове, същите като другите общи езици за програмиране. Обектите могат да бъдат всякакви обекти от реалния свят. Python позволява на разработчиците да разработват приложения, използвайки подхода OOP, с основен фокус върху повторната употреба на кода. Много е лесно да създавате класове и обекти в Python.

Какво е клас?

Клас в Python е логическо групиране на данни и функции. Той дава свободата да се създават структури от данни, които съдържат произволно съдържание и следователно лесно достъпни.

Например, за всеки банков служител, който иска да получи данните за клиента онлайн, ще отиде в клас клиент , където ще бъдат изброени всички негови атрибути, като подробности за транзакциите, подробности за теглене и депозит, непогасен дълг и др.

В този урок ще научим,

  • Как да дефинираме класове на Python
  • Как работи наследяването
  • Python конструктори

Как да дефинираме класове на Python

За да определите клас, трябва да вземете предвид следните точки

Стъпка 1) В Python класовете се дефинират от ключовата дума "Class"

class myClass():

Стъпка 2) Вътре в класовете можете да дефинирате функции или методи, които са част от този клас

def method1 (self):print "Guru99"def method2 (self,someString):print "Software Testing: + someString
  • Тук дефинирахме метод1, който отпечатва "Guru99."
  • Друг метод, който дефинирахме, е метод2, който отпечатва "Тестване на софтуер" + SomeString. SomeString е променливата, предоставена от извикващия метод

Стъпка 3) Всичко в клас е с отстъп, точно като кода във функцията, цикъл, оператор if и т.н. Всичко, което не е с отстъп, не е в класа

ЗАБЕЛЕЖКА : Относно използването на „самостоятелно“ в Python

  • Аргументът за себе си се отнася до самия обект. Оттук и употребата на думата аз. Така че вътре в този метод self ще се позовава на конкретния екземпляр на този обект, който се експлоатира.
  • Self е името, предпочитано от конвенцията от Pythons, за да посочи първия параметър на методите на екземпляра в Python. Той е част от синтаксиса на Python за достъп до членове на обекти

Стъпка 4) За да направите обект от класа

c = myClass()

Стъпка 5) За да извикате метод в клас

c.method1()c.method2(" Testing is fun")
  • Забележете, че когато извикаме метод1 или метод2, не е нужно да предоставяме ключовата дума self. Това автоматично се обработва за нас от времето на изпълнение на Python.
  • Времето за изпълнение на Python ще предаде стойност "self", когато извикате метод на екземпляр, например дали го предоставяте умишлено или не
  • Просто трябва да се грижите за не-себе аргументите

Стъпка 6) Ето пълния код

# Примерен файл за работа с класовеклас myClass ():def method1 (самостоятелно):печат ("Guru99")def method2 (self, someString):print ("Тестване на софтуера: + someString)def main ():# упражнявайте методите на класаc = myClass ()c.method1 ()c.method2 ("Тестването е забавно")ако __name __ == "__main__":главен ()

Как работи наследяването

Наследяването е функция, използвана в обектно-ориентираното програмиране; той се отнася до дефиниране на нов клас с по-малко или никаква модификация на съществуващ клас. Новият клас се нарича производен клас, а от този, който наследява, се нарича база . Python поддържа наследяване; той също така поддържа множество наследства . Клас може да наследи атрибути и методи на поведение от друг клас, наречен клас на подклас или наследник.

Синтаксис на наследяване на Python

class DerivedClass(BaseClass):body_of_derived_class

Стъпка 1) Изпълнете следния код

# Примерен файл за работа с класовеклас myClass ():def method1 (самостоятелно):печат ("Guru99")клас childClass (myClass):#def метод1 (самостоятелно):# myClass.method1 (самостоятелно);#print ("метод на ChildClass1")def method2 (самостоятелно):print ("метод на childClass2")def main ():# упражнявайте методите на класаc2 = childClass ()c2.method1 ()# c2.method2 ()ако __name __ == "__main__":главен ()

Забележете, че в childClass, method1 не е дефиниран, но е получен от родителския myClass. Резултатът е "Guru99."

Стъпка 2) Коментирайте ред # 8 и 10. Стартирайте кода

Сега методът 1 е дефиниран в childClass и изходът "childClass Method1" е показан правилно.

Стъпка 3) Коментирайте линия # 9. Изпълнете кода

Можете да извикате метод на родителския клас, като използвате синтаксиса

ParentClassName.MethodName(self)

В нашия случай, ние се обаждаме, myClass.method1 (самостоятелно) и Guru99 се отпечатва, както се очаква

Стъпка 4 ) Коментирайте линия # 19. Изпълнете кода.

Извиква се метод 2 на дъщерния клас и се отпечатва "childClass method2", както се очаква.

Python конструктори

Конструкторът е функция на клас, която създава екземпляр на обект до предварително дефинирани стойности.

Започва с двойно подчертаване (_). Това е метод __init __ ()

В примера по-долу вземаме името на потребителя с помощта на конструктор.

class User:name = ""def __init__(self, name):self.name = namedef 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 classesclass myClass():def method1(self):print "Guru99"def method2(self,someString):print "Software Testing: + someStringdef main():# exercise the class methodsc = myClass ()c.method1()c.method2(" Testing is fun")if __name__== "__main__":main()#How Inheritance works# Example file for working with classesclass 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 methodsc2 = childClass()c2.method1()#c2.method2()if __name__== "__main__":main()

Резюме:

"Клас" е логическо групиране на функции и данни. Класът Python предоставя всички стандартни функции на обектно-ориентираното програмиране.

  • Механизъм за наследяване на клас
  • Производен клас, който заменя всеки метод от своя основен клас
  • Методът може да извика метода на основен клас със същото име
  • Класовете на Python се дефинират от самата ключова дума "class"
  • Вътре в класовете можете да дефинирате функции или методи, които са част от класа
  • Всичко в клас е с отстъп, точно като кода във функцията, цикъл, if оператор и т.н.
  • Аргументът self в Python се отнася до самия обект. Self е името, предпочитано от конвенцията от Pythons, за да посочи първия параметър на методите на екземпляра в Python
  • Времето за изпълнение на Python автоматично ще предаде стойност "self", когато извикате метод на екземпляр, независимо дали го предоставяте умишлено или не
  • В Python клас може да наследи атрибути и методи на поведение от друг клас, наречен клас на подклас или наследник.