classmethods Python

Contents
Введение
Отличие метода от функции
Пример
__init__()
__init__() значения по умолчанию
self
Похожие статьи

Введение

Это продолжение статьи «Классы» из раздела «ООП в Python» .

Здесь вы можете прочитаь про classmethods

Обычные, иначе говоря, instance методы вы можете изучить здесь

Рекомендую также изучить статью «Декораторы в Python»

# Class Methods part 1. Total 8 class Employee: num_of_emps = 0 raise_amt = 1.04 def __init__(self, first, last, pay): self.first = first self.last = last self.pay = pay self.email = first + '.' + last + '@company.com' Employee.num_of_emps += 1 def fullname(self): return f'{self.first} {self.last}' def apply_raise(self): self.pay = int(self.pay * self.raise_amt) # regular method automatically takes an instance as an argument # by convention it is called 'self' #class method takes class as an argument @classmethod def set_raise_amt(cls, amount): cls.raise_amt = amount emp_1 = Employee('Balda', 'Worker', 50000) emp_2 = Employee('Test', 'User', 60000) print(Employee.raise_amt) # 1.04 print(emp_1.raise_amt) # 1.04 print(emp_2.raise_amt) # 1.04 Employee.set_raise_amt(1.05) print(Employee.raise_amt) # 1.05 print(emp_1.raise_amt) # 1.05 print(emp_2.raise_amt) # 1.05 # also possible to apply to instance but # what is the point emp_1.set_raise_amt(1.06) print(Employee.raise_amt) # 1.06 print(emp_1.raise_amt) # 1.06 print(emp_2.raise_amt) # 1.06

python classmethod_example.py

1.04 1.04 1.04 1.05 1.05 1.05 1.06 1.06 1.06

Related Articles
OOP in Python
Classes
Methods
class variables
class methods
Static Methods
Inheritance
Special Methods
property decorator
Python
Functions
super()
Banner Image

Search on this site

Subscribe to @aofeed channel for updates

Visit Channel

@aofeed

Feedbak and Questions in Telegram

@aofeedchat