我有以下裝飾和類。裝飾者args和kwargs在元組內返回
def auth(fn):
def check_headers(self):
print 'checking headers...'
#self.headers work done here
def inner(self, *args, **kwargs):
check_headers(self)
fn(self, args, kwargs)
return inner
class Worker(object):
@auth
def work(self, *args, **kwargs):
print 'auth passed'
print args
print kwargs
worker_obj = Worker()
worker_obj.work('arg', kw='kwarg')
,輸出:
> checking headers...
> auth passed
> (('arg',), {'kw': 'kwarg'})
> {}
但我在期待這樣的:
> checking headers...
> auth passed
> ('arg',)
> {'kw': 'kwarg'}
怎麼來的ARGS/kwargs越來越放在一個元組時,原來的方法(工() )正在運行,後期裝修?
我知道,剝離下來到
def auth(fn):
return fn
正確返回的參數,但我需要在返回前做的工人實例(個體經營)一些工作。我肯定錯過了裝飾者的一些東西。
謝謝!
太棒了,太快了!謝謝。 – 2013-05-09 19:23:20