Класи в 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)
В цьому відео поговоримо про:
00:06 Classes
03:43 init() Function
09:39 str() Function
18:30 Object Methods
22:35 self Parameter
27:14 Modify Objects