Урок 23. Класи і об’єкти

Класи в Python — це шаблони для створення об’єктів, які дозволяють організувати дані і функціональність у програмі. Вони є основою об’єктно-орієнтованого програмування (ООП) і дозволяють створювати об’єкти, які мають власні атрибути (дані) і методи (функції). Приклад з відео:

#Python — це об'єктно-орієнтована 
#мова програмування.
#Майже все в Python є об’єктом 
#зі своїми властивостями та методами.
#Клас схожий на конструктор об’єктів 
#або «схему» для створення об’єктів.
#Щоб створити клас, використовуйте 
#ключове слово class
class MyFavouriteNumber:
    favouriteNumber = 5
    
#Now we can use the class named MyFavouriteNumber to create objects
favNum1 = MyFavouriteNumber()
print(favNum1)
print(type(favNum1))
print(favNum1.favouriteNumber)

Функція __init__()

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

#Щоб зрозуміти значення класів, 
#ми повинні зрозуміти
#вбудовану функцію __init__().
#Усі класи мають функцію під 
#назвою __init__(), яка завжди
#виконується, коли клас ініціюється.
#Функція __init__() щоразу 
#викликається автоматично
#клас використовується для 
#створення нового об'єкта.
class MyFavouriteNumber:
    def __init__(self, favouriteNumber):
        self.favouriteNumber=favouriteNumber
        
favNum1 = MyFavouriteNumber(7)

print(favNum1.favouriteNumber)

favNum2 = MyFavouriteNumber(8)

print(favNum2.favouriteNumber)

Функція __str__()

Функція __str__() в Python — це спеціальний метод, який визначає, як об’єкт класу буде представлений у вигляді рядка. Він викликається, коли ви використовуєте функцію print() або функцію str() для об’єкта. Приклад з відео:

#Функція __str__() керує тим, 
#що має бути повернуто
#коли об'єкт класу представлено 
#у вигляді рядка.
#Якщо функцію __str__() не встановлено, 
#повертається рядкове представлення об'єкта 

class Person:
    def __init__(self, name, surname, age):
        self.name = name
        self.surname = surname
        self.age = age
        
person1 = Person("John", "Smith", 35)
print(person1)
print(person1.name, person1.surname, person1.age)
person2 = Person("Jenny", "Jackson", 30)
print(person2)
print(person2.name, person2.surname, person2.age)

Приклад рядкового представлення об’єкта за допомогою функції __str__() з відео:

#Рядкове представлення 
#об’єкта з функцією __str__().
class Person:
    def __init__(self, name, surname, age):
        self.name = name
        self.surname = surname
        self.age = age
        
    def __str__(self):
        return f"Name: {self.name} Surname: {self.surname} Age: {self.age}"

        
person1 = Person("John", "Smith", 35)
print(person1)
person2 = Person("Jenny", "Jackson", 30)
print(person2)

Методи об’єкта

Спрощено методи об’єкта в Python — це функції, які визначені всередині класу і можуть бути викликані на об’єктах цього класу. Вони дозволяють виконувати дії або маніпулювати атрибутами об’єкта. Приклад з відео:

#Об'єкти також можуть містити методи. 
#Методи в об'єктах є функціями
#які належать об'єкту.
#Параметр self - це посилання на 
#поточний екземпляр класу,
#та використовується для доступу до 
#змінних, які належать до класу.
class Person:
    def __init__(self, name, surname):
        self.name = name
        self.surname = surname
        
    def introduceFunc(self):
        print("Hello my name is {} {}".format(self.name, self.surname))
        
person1 = Person("John", "Smith")
person1.introduceFunc()
person2 = Person("Jenny", "Jackson")
person2.introduceFunc()

Параметр self

Параметр self в Python — це посилання на поточний об’єкт класу, з яким працює метод. Він використовується для доступу до атрибутів і методів цього об’єкта. Приклад з відео:

#Параметр self - це посилання на 
#поточний екземпляр класу,
#та використовується для доступу до 
#змінних, які належать до класу.
#Його не обов'язково називати self, 
#ви можете називати його як завгодно,
#але це має бути перший параметр 
#будь-якої функції в класі.
class Person:
    def __init__(refToCurrentInstance, name, surname):
        refToCurrentInstance.name = name
        refToCurrentInstance.surname = surname
        
    def introduceFunc(refToCurrentInstance):
        print("Hello my name is {} {}".format(refToCurrentInstance.name,
                                              refToCurrentInstance.surname))
        
person1  = Person("John", "Smith")
person1.introduceFunc()
person2 = Person("Jenny", "Jackson")
person2.introduceFunc()

Внесення змін в об’єкти класу

Змінювати об’єктіи класу можна за допомогою так званого dot syntax (синтаксису крапки). Dot syntax (синтаксис крапки) в Python — це спосіб доступу до атрибутів і методів об’єктів або класів за допомогою крапки. Це дозволяє вам працювати з властивостями та функціями, які належать до конкретного об’єкта або класу. Приклад з відео:

#Ви можете змінювати властивості об’єктів, 
#використовуючи крапковий синтаксис для доступу
class Person:
    def __init__(self, name, surname, age):
        self.name =  name
        self.surname =  surname
        self.age = age
        
    def introduceFunc(self):
        print("Hello my name is {} {}".format(self.name, self.surname))
        print("I'm {} old".format(self.age))
        

person1 = Person("John", "Smith", 35)
person1.introduceFunc()
person1.name = "James"
person1.age = 33
person1.introduceFunc()
del person1.age
#person1.introduceFunc()
del person1
#print(person1)
Урок 23. Класи та об’єкти

В цьому відео поговоримо про:
00:06 Classes
03:43 init() Function
09:39 str() Function
18:30 Object Methods
22:35 self Parameter
27:14 Modify Objects

Приклади на Github

Leave a Reply

Your email address will not be published. Required fields are marked *