Forwarded from Python Academy
Добавляем классу большую функциональность
Декоратор
Методы класса привязаны к самому классу, а не его экземпляру. Они могут менять состояние класса, что отразится на всех объектах этого класса, но не могут менять конкретный объект.
Проще говоря,
#oop #classmethod
Декоратор
@classmethod
— это метод, который получает класс в качестве параметра, который принято обозначать как cls
. Он указывает на класс ToyClass, а не на объект этого класса. Методы класса привязаны к самому классу, а не его экземпляру. Они могут менять состояние класса, что отразится на всех объектах этого класса, но не могут менять конкретный объект.
Проще говоря,
@classmethod
— это обычный метод класса, имеющий доступ ко всем атрибутам класса, через который он был вызван.#oop #classmethod
Forwarded from Python Skills 🐍
Добавляем классу большую функциональность
Декоратор
Методы класса привязаны к самому классу, а не его экземпляру. Они могут менять состояние класса, что отразится на всех объектах этого класса, но не могут менять конкретный объект.
Проще говоря,
#oop #classmethod
Декоратор
@classmethod
— это метод, который получает класс в качестве параметра, который принято обозначать как cls
. Он указывает на класс ToyClass, а не на объект этого класса. Методы класса привязаны к самому классу, а не его экземпляру. Они могут менять состояние класса, что отразится на всех объектах этого класса, но не могут менять конкретный объект.
Проще говоря,
@classmethod
— это обычный метод класса, имеющий доступ ко всем атрибутам класса, через который он был вызван.#oop #classmethod
#classmethod
class MyClass():
TOTAL_OBJECTS=0
def __init__(self):
MyClass.TOTAL_OBJECTS = MyClass.TOTAL_OBJECTS+1
@classmethod
def total_objects(cls):
print("Total objects: ", cls.TOTAL_OBJECTS)
# Создаем объекты родительского класса
my_obj1 = MyClass()
my_obj2 = MyClass()
# Создаем дочерний класс
class ChildClass(MyClass):
TOTAL_OBJECTS=0
pass
ChildClass.total_objects()
class MyClass():
TOTAL_OBJECTS=0
def __init__(self):
MyClass.TOTAL_OBJECTS = MyClass.TOTAL_OBJECTS+1
@classmethod
def total_objects(cls):
print("Total objects: ", cls.TOTAL_OBJECTS)
# Создаем объекты родительского класса
my_obj1 = MyClass()
my_obj2 = MyClass()
# Создаем дочерний класс
class ChildClass(MyClass):
TOTAL_OBJECTS=0
pass
ChildClass.total_objects()