Пропустить функцию-декоратор функции родительского класса при вызове из дочернего класса - PullRequest
4 голосов
/ 09 апреля 2019

Скажем, у меня есть два класса A и B.Когда функция test() вызывается из дочернего элемента class B с использованием super, она должна пропустить декоратор @validate.Как заставить метод super пропустить декоратор функции родительского класса при вызове из дочернего класса?Есть ли возможность?

class A:

   @validate  
   def test():
      pass

Class B(A):

   @validate 
   def test():
      super(B, self).test()
      pass

1 Ответ

2 голосов
/ 09 апреля 2019

Вы можете удалить аннотацию @validate в родительском классе, чтобы она не называлась

class A:

   def test():
      pass

Class B(A):

   @validate 
   def test()
      super(B, self).test()
      pass

Другой вариант - использовать промежуточный метод

class A:

   @validate  
   def test():
      intermediate()

   def intermediate():
       pass


Class B(A):

   @validate 
   def test()
      super(B, self).intermediate()
      pass
...