Python ООП: клас, об’єкт, успадкування та конструктор із прикладом

ООП в Python

ООП в Python це підхід до програмування, який зосереджується на використанні об’єктів і класів так само, як і в інших загальних мовах програмування. Об’єктами можуть бути будь-які сутності реального світу. Python дозволяє розробникам розробляти додатки з використанням підходу ООП, приділяючи основну увагу повторному використанню коду. У ньому дуже легко створювати класи та об’єкти Python.

Що таке клас?

Клас в Python це логічне групування даних і функцій. Це дає свободу створювати структури даних, які містять довільний вміст і, отже, легко доступні.

Наприклад, для будь-якого банківського працівника, який хоче отримати інформацію про клієнта онлайн, він звернеться до клієнтський клас, де будуть перераховані всі його атрибути, такі як деталі транзакції, деталі зняття та депозиту, непогашений борг тощо.

Як визначити 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 класів

ПРИМІТКА: Про використання слова «я» в Python

  • Самоаргумент відноситься до самого об'єкта. Звідси вживання слова self. Таким чином, у цьому методі self посилатиметься на конкретний екземпляр цього об’єкта, над яким виконується операція.
  • Self - це ім'я, якому надається перевага за умовами Pythons для вказівки першого параметра методів екземпляра в Python. Це частина Python синтаксис доступу до членів об'єктів

Крок 4) Створити об'єкт класу

c = myClass()

Крок 5) Щоб викликати метод у класі

c.method1()
    c.method2(" Testing is fun")
  • Зауважте, що коли ми викликаємо method1 або method2, нам не потрібно вказувати власне ключове слово. Це автоматично виконує для нас 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()

Як працює спадкування

Спадкування — функція, яка використовується в об'єктно-орієнтованому програмуванні; це відноситься до визначення нового класу з меншими або без модифікацій існуючого класу. Новий клас називається похідний клас і той, який він успадковує, називається the база. Python підтримує спадковість; він також підтримує множинні спадщини. Клас може успадкувати атрибути та методи поведінки від іншого класу, який називається підкласом або класом-спадкоємцем.

Визначте 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()

Зауважте, що метод1 у дочірньому класі не визначений, але походить від батьківського класу myClass. Результатом буде «Guru99».

Крок 2) Розкоментуйте рядок № 8 і 10. Запустіть код

Тепер метод 1 визначено в дочірньому класі, і результат «childClass Method1» відображається правильно.

Крок 3) Розкоментуйте рядок №9. Запустіть код

Ви можете викликати метод батьківського класу за допомогою синтаксису

ParentClassName.MethodName(self)

У нашому випадку ми викликаємо myClass.method1(self) і Guru99 друкується належним чином

крок 4) Розкоментуйте рядок №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

Підсумки

«Клас» — це логічне групування функцій і даних. Python Клас забезпечує всі стандартні можливості об'єктно-орієнтованого програмування.

  • Механізм успадкування класів
  • Похідний клас, який перевизначає будь-який метод свого базового класу
  • Метод може викликати метод базового класу з тим самим іменем
  • Python Класи визначаються ключовими словами «клас» сам
  • Усередині класів ви можете визначити функції або методи, які є частиною класу
  • Усе в класі має відступ, як і код у функції, циклі, операторі if тощо.
  • Сам аргумент в Python відноситься до самого предмета. Self - це ім'я, якому надається перевага за умовами Pythons для вказівки першого параметра методів екземпляра в Python
  • Python середовище виконання автоматично передасть значення «власного» під час виклику методу екземпляра в екземплярі, незалежно від того, надано ви його навмисно чи ні
  • In Python, клас може успадкувати атрибути та методи поведінки від іншого класу, який називається підкласом або класом-спадкоємцем.

Підсумуйте цей пост за допомогою: