我遇到了一個有趣的場景,同時在python中創建裝飾器。以下是我的代碼: -如何使類中的staticmethod作爲裝飾器在python中?
class RelationShipSearchMgr(object):
@staticmethod
def user_arg_required(obj_func):
def _inner_func(**kwargs):
if "obj_user" not in kwargs:
raise Exception("required argument obj_user missing")
return obj_func(*tupargs, **kwargs)
return _inner_func
@staticmethod
@user_arg_required
def find_father(**search_params):
return RelationShipSearchMgr.search(Relation.RELATION_FATHER, **search_params)
如上面的代碼所示,我創建了一個裝飾(這是在類的靜態方法),檢查,如果「obj_user」作爲參數傳遞給裝飾函數傳遞。我已裝飾功能find_father
,但我收到以下錯誤消息: - 'staticmethod' object is not callable
。
如何使用上面顯示的靜態工具方法作爲python中的裝飾器?
在此先感謝。
這是否回答幫助? http://stackoverflow.com/a/6412373/4014959 –