Расширение класса в Python внутри декоратораPython

Программы на Python
Ответить
Anonymous
 Расширение класса в Python внутри декоратора

Сообщение Anonymous »

Я использую декоратор, чтобы расширить определенные классы и добавить к ним некоторую функциональность, например следующую:

Код: Выделить всё

def useful_stuff(cls):
class LocalClass(cls):
def better_foo(self):
print('better foo')
return LocalClass

@useful_stuff
class MyClass:
def foo(self):
print('foo')
К сожалению, MyClass больше нельзя выбрать из-за неглобального LocalClass

Код: Выделить всё

AttributeError: Can't pickle local object 'useful_stuff..LocalClass'
  • Мне нужно мариновать занятия. Можете ли вы порекомендовать лучший дизайн?
  • Учитывая, что в классе может быть несколько декораторов, будет ли переход на множественное наследование, когда MyClass наследует всю функциональность, будет лучший вариант?


Подробнее здесь: https://stackoverflow.com/questions/538 ... -decorator
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»