Найти - Пользователи
Полная версия: Декоратор абстрактного метода
Начало » Python для экспертов » Декоратор абстрактного метода
1
Nixxx
Появилась идея создать декоратор абстрактного метода класса, суть его работы такова:
при указании декоратора к методу класса при наследовании этого класса другими метод должен быть переопределён, иначе на этапе создания класса(а не экземпляра) будет выкинуто исключение.
Проблема в том, что если делать так:
def abstr(f):
    #Выполнение проверки и выброс исключения исключения
class A():
    @abstr
    def foo: pass
class B(A):
    pass
Выполнение проверки в декораторе будет выполнено при создании класса A и не будет выполняться при создании класса B.
Есть ли способы реализовать проверку в декораторе при использовании наследования?

lorien
> Есть ли способы реализовать проверку в декораторе при использовании наследования?

Читайте про метаклассы, с помощью них эт легко сделать.

Впрочем, то что вы хотите уже есть в стандартнй библитеке: http://docs.python.org/2/library/abc.html#abc.abstractmethod
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB