我有一个dispatcher,其中一个字典包含键,每个键都有一个要调用的方法/函数列表。你知道吗
operation_request_handlers = {
'permissionsVARVARVARVARGET': [jwtoken.validate, permission_query],
'permissionsVARVARVARVARPOST': [jwtoken.validate, permission_set],
'permissionsVARVARVARVARDELETE': [jwtoken.validate, permission_delete],
}
如果分派目标是一个函数(即permission\u query),或者如果目标是一个静态方法(即jwtoken.validate
),那么这种方法可以很好地工作。你知道吗
问题是我无法解决在jwtoken.validate
不是静态方法的情况下如何调度。你知道吗
据我所知,我首先需要实例化jwtoken
,然后在该实例上调用validate
方法。是这样吗?如果我只有jwtoken.validate
,我怎么实例化jwtoken
类呢?你知道吗
更新:很多人都发表了评论,谢谢大家。我目前的想法是,应该将有效的分派目标限制为callable。你知道吗
我不确定这个问题的“正确”答案是什么,但最终我使分派目标不是一个方法而是一个类。你知道吗
一旦我做了,一切都很好,我可以直接派到班上。你知道吗
您需要先创建实例并存储绑定的方法,或者稍后将方法绑定到实例。你知道吗
如果您只需要一个实例,则可以使用第一个实例;然后可以简单地查找方法并将其存储在映射中:
这假设
jwtoken()
类不接受任何附加参数。你知道吗如果每次都需要一个新的实例,可以将该实例作为存储的未绑定方法的第一个参数传递
而在实例上查找方法会生成一个绑定的方法(它们将作为方法的
self
第一个参数传入实例),在类上查找方法会生成一个未绑定的方法(如果您使用的是python3,则只需函数),并且需要显式传入第一个参数。你知道吗您可以使用im_class特殊属性从给定类的方法对象的类实例化对象:
相关问题 更多 >
编程相关推荐