Например, скажем, у меня есть определенный декоратор, который называется: decorate
def decorate(func):
def inside_func(*args, **kwargs):
# Do something
return func(*args, **kwargs)
return inside_func
Далее, скажем, я пишу абстрактный класс с именем Model
from abc import ABC, abstractmethod
class Model(ABC):
def __init__(self, value):
self.value = value
super().__init__()
@abstractmethod
@decorate # <-------------------- IS @decorate ALLOWED HERE?
def do_something(self):
pass
ИлиДолжно ли это быть:
from abc import ABC, abstractmethod
class Model(ABC):
def __init__(self, value):
self.value = value
super().__init__()
@abstractmethod
def do_something(self):
pass
# Inherit the base class
class DoAdd42(Model):
@decorate # <----------------------- SHOULD @decorate BE HERE INSTEAD?
def do_something(self):
return self.value + 42
Если разрешены оба варианта, есть ли способ «наилучшей практики» для этого?