2012-07-19 33 views
0
def method(path,method,callback) 
    def decorator(callback):if isinstance(callback, basestring): callback = load(callback) 
     for rule in makelist(path) or yieldroutes(callback): 
      for verb in makelist(method): 
       verb = verb.upper() 
       route = Route(self, rule, verb, callback, name=name, 
           plugins=plugins, skiplist=skiplist, **config) 
       self.add_route(route) 
    return callback 
return decorator(callback) if callback else decorator 

最后一句话的含义是什么?在Python中,如果回调其他装饰器的意思是“返回装饰器(回调)”是什么?

+0

有一个发布的语言标准,以及交互式解释。在您发布这些问题之前,您会获得更多快乐,看看基本问题。 – Marcin 2012-07-19 14:56:17

回答

5
return decorator(callback) if callback else decorator 

转化为:

if callback: 
    return decorator(callback) 
else: 
    return decorator 

它具有ternary表达的Python's way

看到这个SO问题关于Does Python have a ternary conditional operator? 的更多信息。

+0

@ user1092988如果回答了您的问题,请随时[通过点击复选标记接受此答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235# 5235)在这个答案旁边。它会用一些积分奖励我们,并将这个问题标记为已解决。 – Levon 2012-07-21 19:19:30

0

最后一句基本上意味着

if callback: # Tests to see if callback is not None in essence, although 0 and '' will also test False 
    return decorator(callback) 
else: # Not needed, just for clarity sake 
    return decorator