2
我最近一直在使用JabberBot framework,最後我試圖理解它的修飾器@botcmd
,它用於指定可以在聊天中執行的方法。這個如果在這個裝飾器中做的塊是什麼?
def botcmd(*args, **kwargs):
"""Decorator for bot command functions"""
def decorate(func, hidden=False, name=None, thread=False):
setattr(func, '_jabberbot_command', True)
setattr(func, '_jabberbot_command_hidden', hidden)
setattr(func, '_jabberbot_command_name', name or func.__name__)
setattr(func, '_jabberbot_command_thread', thread) # Experimental!
return func
if len(args):
return decorate(args[0], **kwargs)
else:
return lambda func: decorate(func, **kwargs)
我瞭解除了if/else
塊的用途之外的所有內容。 if/else
塊究竟做了什麼?