Предположим, у меня есть следующий класс:
class Item:
def __init__(self, string=''):
self.string = string
@classmethod
def from_string(cls, string):
return cls(string=string)
Метод класса в приведенном выше случае не является необходимым, так как я мог бы так же легко вызвать Item(string='asdf')
вместо Item.from_string(string='asdf')
, но япросто используя его в качестве примера.
Возможно ли присоединить произвольный classmethod вне самого класса? Например, что-то вроде:
def from_string(cls, string):
return cls(string=string)
classmethod(from_string(Item, "asdf"))
Или, чтобы написать что-то вроде этого:
class Item:
def __init__(self, string=''):
self.string = string
from_string = classmethod(f)
def f(string):
return Item(string)
По сути, я пытаюсь понять декораторы немного больше и как они могут бытьиспользуется вне их обычного контекста (чтобы увидеть, что они делают за кадром).