2015-09-25 3 views
0

Я пытаюсь понять, как декораторы работают лучше; но я продолжаю запутываться, когда он просто не работает.Python украшает метод класса аргументами

Вот что у меня есть/Требуется:

class myClass(object): 

    @myDecorate("something") 
    def test(self, arg1): 
     print arg1 

myInstance = myClass() 
myInstance.test("i am arg1") 

я передать ARG к декоратора, который не будет послан к самому методу; вместо этого используется, чтобы сделать что-то за кулисами, что метод класса не нужно беспокоиться. Когда я вызываю метод класса; Я хочу, чтобы он отправил self и arg1.

Я не могу понять, как это сделать; любая помощь будет большой, спасибо!

ответ

2

Вы можете сделать что-то вроде этого:

def myDecorate(something): 
    # do work here 
    def decorate(f): 
     def _wrapper(self, arg1, myOtherArg): 
      # do something with myOtherArg 
      return f(self, arg1) 
     return _wrapper 
    return decorate 
+0

Спасибо! Это закончилось для меня –

Смежные вопросы