classmethod
Представляет указанную функцию методом класса.
classmethod(function)
-> Метода класса
function -- Функция, которую следует представить методом класса.
+py2.4 Может использоваться к качестве декоратора.
В метод класса первым аргументом неявным образом передаётся класс (аналогично метод экземпляра получает в первом аргументе сам экземпляр).
Для удобного объявления метода класса используйте
Из примеров выше видно, что метод может вызываться как через класс —
На заметку
Методы класса реализованы при помощи дескрипторов.
В метод класса первым аргументом неявным образом передаётся класс (аналогично метод экземпляра получает в первом аргументе сам экземпляр).
Для удобного объявления метода класса используйте
classmethod
в виде декоратора: class MyClass:
@classmethod
def method(cls, arg):
print('%s classmethod. %d' % (cls.__name__, arg))
@classmethod
def call_original_method(cls):
cls.method(5)
def call_class_method(self):
self.method(10)
class MySubclass(MyClass):
@classmethod
def call_original_method(cls):
cls.method(6)
# Вызываем методы класса через класс.
MyClass.method(0) # MyClass classmethod. 0
MyClass.call_original_method() # MyClass classmethod. 5
MySubclass.method(0) # MySubclass classmethod. 0
MySubclass.call_original_method() # MySubclass classmethod. 6
# Вызываем методы класса через объект.
my_obj = MyClass()
my_obj.method(1) # MyClass classmethod. 1
my_obj.call_class_method() # MyClass classmethod. 10
Из примеров выше видно, что метод может вызываться как через класс —
MyClass.method()
—, так и через экземпляр — MyClass().method()
. При вызове метода из наследника в первом аргументе метод получит класс этого самого наследника.Внимание
Методы класса не являются аналогом статических методов из C++ или Java. Если нужен аналог, используйте staticmethod().
Синонимы поиска: classmethod, метод класса
В разделе «Встроенные функции»:
abs
all
any
apply
ascii
bin
callable
chr
cmp
compile
delattr
dir
divmod
enumerate
eval
exec
filter
format
getattr
globals
hasattr
hash
help
hex
id
input
isinstance
issubclass
iter
len
locals
map
max
min
next
oct
open
ord
pow
print
raw_input
reduce
repr
reversed
round
setattr
sorted
staticmethod
sum
super
unichr
vars
zip
На заметку
У нас есть новостная группа в Telegram. Там же можно обсудить интересующие вопросы. Ссылка в самом низу страницы.