Python Класи та об’єкти
Python Класи/Об’єкти
Python — це об’єктно-орієнтована мова програмування.
Майже все в Python є об’єктом зі своїми властивостями та методами.
Клас схожий на конструктор об’єктів або "blueprint" ("схему") для створення об’єктів.
Створити клас
Щоб створити клас, використовуйте ключове слово class
:
Створити об’єкт
Тепер ми можемо використовувати клас під назвою MyClass для створення об’єктів:
Приклад
Створіть об’єкт з іменем p1 і виведіть значення x:
p1 = MyClass()
print(p1.x)
Спробуйте самі »
Функція __init__()
Наведені вище приклади є класами та об’єктами в їх найпростішій формі, і вони не дуже корисні в реальних програмах.
Щоб зрозуміти значення класів, нам потрібно зрозуміти вбудовану функцію __init__().
Усі класи мають функцію під назвою __init__(), яка завжди виконується, коли клас ініціюється.
Використовуйте функцію __init__(), щоб призначити значення властивостям об’єкта або іншим операціям, які необхідно виконувати під час створення об’єкта:
Приклад
Створіть клас під назвою Person, скористайтеся функцією __init__(), щоб призначити значення імені та віку:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1.name)
print(p1.age)
Спробуйте самі »
Примітка. Функція __init__()
викликається автоматично кожного разу, коли клас використовується для створення нового об’єкта.
Функція __str__()
Функція __str__() керує тим, що має повертатися, коли об’єкт класу представлено у вигляді рядка.
Якщо функцію __str__() не встановлено, повертається рядкове представлення об’єкта:
Приклад
Рядкове представлення об’єкта WITHOUT функції __str__():
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1)
Спробуйте самі »
Приклад
Рядкове представлення об’єкта WITH функції __str__():
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}({self.age})"
p1 = Person("John", 36)
print(p1)
Спробуйте самі »
Методи об’єктів
Об’єкти також можуть містити методи. Методи в об’єктах – це функції, які належать об’єкту.
Давайте створимо метод у класі Person:
Приклад
Вставте функцію, яка друкує привітання, і виконайте її на об’єкті p1:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person("John", 36)
p1.myfunc()
Спробуйте самі »
Примітка: Параметр self
є посиланням на поточний екземпляр класу та використовується для доступу до змінних, які належать до класу.
Параметр self
Параметр self
є посиланням на поточний екземпляр класу та використовується для доступу до змінних, які належать до класу.
Це не обов’язково повинно мати назву self
, ви можете називати її як завгодно, але вона має бути першим параметром будь-якої функції в класі:
Приклад
Використовуйте слова mysillyobject та abc замість self:
class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
p1 = Person("John", 36)
p1.myfunc()
Спробуйте самі »
Змінити властивості об’єкта
Ви можете змінювати властивості таких об’єктів:
Видалити властивості об’єкта
Ви можете видалити властивості об’єктів за допомогою ключового слова del
:
Видалити об’єкти
Ви можете видалити об’єкти за допомогою ключового слова del
:
Інструкція pass
Визначення class
не можуть бути порожніми, але якщо з якоїсь причини у вас є визначення class
без вмісту, введіть інструкцію pass
, щоб уникнути помилки.