tgoop.com/proglib_academy/2014
Create:
Last Update:
Last Update:
✏️ Вопрос с реального собеседования по Python
В чём разница между методами экземпляра, класса и статическими методами?
Методы экземпляра используют параметр self и относятся к конкретному экземпляру класса.
Статические методы с декоратором @staticmethod не связаны с экземпляром класса и не могут изменять его атрибуты.
Методы класса принимают параметр cls и позволяют изменять сам класс.
class TeaShop:
specialty = 'green tea'
def __init__(self, tea_price):
self.tea_price = tea_price
# instance method
def make_tea(self):
print(f'Making {self.specialty} for ${self.tea_price}')
# static method
@staticmethod
def check_weather(): // Статический метод просто сообщает, что солнечно, не взаимодействуя с экземпляром или классом
print('Its sunny')
# class method
@classmethod
def change_specialty(cls, specialty): // Метод класса меняет фирменный напиток
cls.specialty = specialty
print(f'Specialty changed to {specialty}')
tea_shop = TeaShop(5) // Метод экземпляра (make_tea) создаёт чай с текущими атрибутами экземпляра
tea_shop.make_tea()
# => Making green tea for $5
#собес_academy
BY Proglib.academy | IT-курсы

Share with your friend now:
tgoop.com/proglib_academy/2014