- не принадлежит классу
- вызывается сама по себе
Пример:
def func():
print("Я функция")
- принадлежит классу
- работает с объектом этого класса
- первым параметром принимает self
Пример:
class MyClass:
def method(self):
print("Я метод")
self — это ссылка на текущий объект.
- обращаться к атрибутам объекта
- изменять состояние конкретного экземпляра класса
Без self Python не знает, к какому объекту относятся данные.
Пример:
class Person:
def set_name(self, name):
self.name = name
__ init __ — это конструктор класса.
- вызывается автоматически при создании объекта
- инициализирует атрибуты объекта
Пример:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Пётр", 20)
- Атрибуты объекта хранятся во внутреннем словаре __ dict__.
- Каждый объект имеет свой собственный словарь атрибутов.
Пример:
print(p.__dict__)
результат:
{'name': 'Иван', 'age': 30}
Магические (dunder) методы — это специальные методы с двойным подчёркиванием:
__ init __
__ str __
__ len __
__ add __
- вызываются автоматически
- определяют поведение объекта при стандартных операциях
Пример:
class Book:
def __init__(self, title):
self.title = title
def __str__(self):
return self.title
book = Book("Python")
print(book)
-
Метод — функция класса
-
self — ссылка на объект
-
__ init __ — инициализация объекта
-
Атрибуты хранятся в __ dict __
-
Магические методы управляют поведением объектов