НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

Python Підручник

Python СТАРТ Python Інтро Python Встановлення Python Синтаксис Python Коментарі Python Змінні Python Типи даних Python Числа Python Кастинг Python Рядки Python Булеві Python Оператори Python Списки Python Кортежі Python Набори Python Словники Python If...Else Python Цикли While Python Цикли For Python Функції Python Лямбда Python Масиви Python Класи/Об’єкти Python Успадкування Python Ітератори Python Поліморфізм Python Область дії (видимості) Python Модулі Python Дати Python Математика Python JSON Python RegEx Python PIP Python Try...Except Python Користувацький ввод Python Форматування рядка

Обробка файлів

Python Обробка файлів Python Читання файлів Python Запис/Створення файлів Python Видалення файлів

Python Modules

NumPy Tutorial Pandas Tutorial SciPy Tutorial Django Tutorial

Python Matplotlib

Matplotlib Інтро Matplotlib Початок роботи Matplotlib Pyplot Matplotlib Складання графіка Matplotlib Маркери Matplotlib Лінія Matplotlib Лейбли Matplotlib Сітка Matplotlib Subplots Matplotlib Scatter Matplotlib Бари Matplotlib Гістограми Matplotlib Кругові діаграми

Машинне навчання

Початок роботи Середній режим Стандартне відхилення Перцентиль Розподіл даних Звичайний розподіл даних Діаграма розкиду Лінійна регресія Поліноміальна регресія Множинна регресія Шкала Тренування/Тест Дерево рішень Confusion Matrix Hierarchical Clustering Logistic Regression Grid Search Categorical Data K-means Bootstrap Aggregation Cross Validation AUC - ROC Curve K-nearest neighbors

Python MySQL

MySQL Початок роботи MySQL CREATE DATABASE MySQL CREATE TABLE MySQL INSERT INTO MySQL SELECT MySQL WHERE MySQL ORDER BY MySQL DELETE FROM MySQL DROP TABLE MySQL UPDATE MySQL LIMIT MySQL JOIN

Python MongoDB

MongoDB Початок роботи MongoDB Створення бази даних MongoDB Створити колекцію MongoDB Вставити MongoDB Знайти MongoDB Запит MongoDB Сортувати MongoDB Видалити MongoDB Drop колекція MongoDB Оновлення MongoDB Ліміт

Python Reference

Python Огляд Python Вбудовані функції Python Рядкові методи Python Методи списку Python Словникові методи Python Кортежні методи Python Set методи Python Файлові методи Python Ключові слова Python Винятки Python Глосарій

Довідник модулів

Модуль Random Модуль Запитів Модуль Статистики Модуль Math Модуль cMath

Python Як зробити?

Видалити копії списків Обернути рядок Додати два числа

Python Приклади

Python Приклади Python Компілятор Python Вправи Python Вікторина Python Bootcamp Python Сертифікат

Python. W3Schools українською. Уроки для початківців

En Es

Python Успадкування


Python Успадкування

Успадкування дозволяє нам визначити клас, який успадковує всі методи та властивості від іншого класу.

Батьківський клас – це клас, який успадковується, також називається базовим класом.

Дочірній клас – це клас, який успадковує інший клас, також називається похідним класом.


Створити батьківський клас

Будь-який клас може бути батьківським, тому синтаксис такий самий, як і для будь-якого іншого класу:

Приклад

Створіть клас під назвою Person із властивостями firstname і lastname та методом printname:

class Person:
  def __init__(self, fname, lname):
    self.firstname = fname
    self.lastname = lname

  def printname(self):
    print(self.firstname, self.lastname)

#Скористайтеся класом Person, щоб створити об’єкт, а потім виконайте метод printname:

x = Person("John", "Doe")
x.printname()
Спробуйте самі »

Створити дочірній клас

Щоб створити клас, який успадковує функції від іншого класу, надішліть батьківський клас як параметр під час створення дочірнього класу:

Приклад

Створіть клас під назвою Student, який успадкує властивості та методи від класу Person:

class Student(Person):
  pass

Примітка: Використовуйте ключове слово pass, якщо ви не хочете додавати будь-які інші властивості чи методи до класу.

Тепер клас Student має ті самі властивості та методи, що й клас Person.

Приклад

Скористайтеся класом Student, щоб створити об’єкт, а потім виконайте метод printname:

x = Student("Mike", "Olsen")
x.printname()
Спробуйте самі »

Додати функцію __init__()

Наразі ми створили дочірній клас, який успадковує властивості та методи від батьківського.

Ми хочемо додати функцію __init__() до дочірнього класу (замість ключового слова pass).

Примітка: Функція __init__() викликається автоматично кожного разу, коли клас використовується для створення нового об’єкта.

Приклад

Додайте функцію __init__() до класу Student:

class Student(Person):
  def __init__(self, fname, lname):
    #add properties etc.

Коли ви додаєте функцію __init__(), дочірній клас більше не успадковуватиме батьківську функцію __init__().

Примітка: Функція дочірнього __init__() перевизначає успадкування __init__() батьківського елемента функції.

Щоб зберегти успадкування батьківської функції __init__(), додайте виклик батьківської функції __init__():

Приклад

class Student(Person):
  def __init__(self, fname, lname):
    Person.__init__(self, fname, lname)
Спробуйте самі »

Тепер ми успішно додали функцію __init__() і зберегли успадкування батьківського класу, і ми готові додати функціональність у функцію __init__().


Використання функції super()

Python також має функцію super(), яка змусить дочірній клас успадкувати всі методи та властивості свого батьківського:

Приклад

class Student(Person):
  def __init__(self, fname, lname):
    super().__init__(fname, lname)
Спробуйте самі »

Використовуючи функцію super(), вам не потрібно використовувати ім’я батьківського елемента, він автоматично успадковує методи та властивості свого батьківського елемента.


Додати властивості

Приклад

Додайте властивість під назвою graduationyear до класу Student:

class Student(Person):
  def __init__(self, fname, lname):
    super().__init__(fname, lname)
    self.graduationyear = 2019
Спробуйте самі »

У наведеному нижче прикладі рік 2019 має бути змінною та передаватися в клас Student під час створення Student об’єктів. Для цього додайте ще один параметр у функцію __init__():

Приклад

Додайте параметр year і передайте правильний рік під час створення об’єктів:

class Student(Person):
  def __init__(self, fname, lname, year):
    super().__init__(fname, lname)
    self.graduationyear = year

x = Student("Mike", "Olsen", 2019)
Спробуйте самі »

Додати методи

Приклад

Додайте метод під назвою welcome до класу Student:

class Student(Person):
  def __init__(self, fname, lname, year):
    super().__init__(fname, lname)
    self.graduationyear = year

  def welcome(self):
    print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)
Спробуйте самі »

Якщо ви додаєте метод до дочірнього класу з тим же ім’ям, що й функція в батьківському класі, успадкування батьківського методу буде перевизначено.


Перевірте себе за допомогою вправ

Вправа:

Який правильний синтаксис для створення класу під назвою Student, який успадковуватиме властивості та методи від класу під назвою Person?

class :