PYTHON_REAL Telegram 981
Методы экземпляра, класса и статические методы в Python — просто о сложном

В Python у нас есть три типа методов: экземпляра (instance methods), классовые (class methods) и статические (static methods). Все они определяются внутри класса, но различаются по тому, как они работают и как к ним обращаться.

🧩 Методы экземпляра

Это наиболее распространённый тип. Они автоматически получают первым аргументом ссылку на объект (self), через который можно обращаться к атрибутам и другим методам этого объекта.


class MyClass:
def instance_method(self):
print(f'Вызван instance_method: {self}')


Вызывается через экземпляр:


obj = MyClass()
obj.instance_method()


🧱 Классовые методы

Получают в качестве первого аргумента сам класс (cls). Это позволяет работать с атрибутами класса, а не отдельного объекта.


class MyClass:
@classmethod
def class_method(cls):
print(f'Вызван class_method: {cls}')


Вызывается через класс или экземпляр:


MyClass.class_method()
obj.class_method()


Часто используется как альтернативный конструктор:


class Book:
def __init__(self, title, author):
self.title = title
self.author = author

@classmethod
def from_string(cls, book_str):
title, author = book_str.split(' - ')
return cls(title, author)


🧊 Статические методы

Не получают ни self, ни cls. Это просто функции, определённые в теле класса для логической организации, когда они имеют отношение к классу, но не используют его состояние.


class MyClass:
@staticmethod
def static_method():
print('Вызван static_method')


Вызывается так же:


MyClass.static_method()
obj.static_method()


🤔 Когда использовать какой метод?

- Используйте методы экземпляра, если нужно работать с данными конкретного объекта.
- Используйте классовые методы, если работаете с самим классом (например, создаёте объекты по альтернативной логике).
- Используйте статические методы, если метод связан с классом логически, но не требует доступа ни к данным экземпляра, ни к атрибутам класса.


https://realpython.com/instance-class-and-static-methods-demystified/

#python

👉 @python_real
👍3



tgoop.com/python_real/981
Create:
Last Update:

Методы экземпляра, класса и статические методы в Python — просто о сложном

В Python у нас есть три типа методов: экземпляра (instance methods), классовые (class methods) и статические (static methods). Все они определяются внутри класса, но различаются по тому, как они работают и как к ним обращаться.

🧩 Методы экземпляра

Это наиболее распространённый тип. Они автоматически получают первым аргументом ссылку на объект (self), через который можно обращаться к атрибутам и другим методам этого объекта.


class MyClass:
def instance_method(self):
print(f'Вызван instance_method: {self}')


Вызывается через экземпляр:


obj = MyClass()
obj.instance_method()


🧱 Классовые методы

Получают в качестве первого аргумента сам класс (cls). Это позволяет работать с атрибутами класса, а не отдельного объекта.


class MyClass:
@classmethod
def class_method(cls):
print(f'Вызван class_method: {cls}')


Вызывается через класс или экземпляр:


MyClass.class_method()
obj.class_method()


Часто используется как альтернативный конструктор:


class Book:
def __init__(self, title, author):
self.title = title
self.author = author

@classmethod
def from_string(cls, book_str):
title, author = book_str.split(' - ')
return cls(title, author)


🧊 Статические методы

Не получают ни self, ни cls. Это просто функции, определённые в теле класса для логической организации, когда они имеют отношение к классу, но не используют его состояние.


class MyClass:
@staticmethod
def static_method():
print('Вызван static_method')


Вызывается так же:


MyClass.static_method()
obj.static_method()


🤔 Когда использовать какой метод?

- Используйте методы экземпляра, если нужно работать с данными конкретного объекта.
- Используйте классовые методы, если работаете с самим классом (например, создаёте объекты по альтернативной логике).
- Используйте статические методы, если метод связан с классом логически, но не требует доступа ни к данным экземпляра, ни к атрибутам класса.


https://realpython.com/instance-class-and-static-methods-demystified/

#python

👉 @python_real

BY Реальный Python




Share with your friend now:
tgoop.com/python_real/981

View MORE
Open in Telegram


Telegram News

Date: |

The Channel name and bio must be no more than 255 characters long With the sharp downturn in the crypto market, yelling has become a coping mechanism for many crypto traders. This screaming therapy became popular after the surge of Goblintown Ethereum NFTs at the end of May or early June. Here, holders made incoherent groaning sounds in late-night Twitter spaces. They also role-played as urine-loving Goblin creatures. Members can post their voice notes of themselves screaming. Interestingly, the group doesn’t allow to post anything else which might lead to an instant ban. As of now, there are more than 330 members in the group. Administrators Invite up to 200 users from your contacts to join your channel
from us


Telegram Реальный Python
FROM American