2 回答
TA贡献2051条经验 获得超10个赞
在python中,就像许多其他语言一样,变量也可以包含一个函数,您可以像包含数字或字符串的其他变量一样将它们传递给其他对象。
CherryPy的member_of函数本身在您的示例中确实返回了一个函数。
我通过简单的步骤对其进行解释:
如果您编写member_of()它,则返回函数member_of()的结果,check在这种情况下,该函数的名称为该函数。
cb_function = member_of('admin')
此时,变量cb_function保存调用函数的结果member_of,并在最后一行member_ofreturn中check,它在函数内定义member_of为另一个函数!
您必须再次调用第一个结果,因为您可以并且必须以与在当前上下文中定义的局部函数几乎相同的方式来对待它,以通过以下操作获得最终结果:
my_result = cb_function()
然后,您将继续使用结果。例如,您可以检查其布尔值:
if my_result:
# do something
...
上面的3个步骤可以写得更短:
cb_function = member_of('admin')
if cb_function():
# do something
...
甚至更短:
if member_of('admin')():
# do something
...
起初,在python中拥有double可能看起来有点奇怪()(),但是如果您考虑一会儿,这是很有意义的。
TA贡献1829条经验 获得超7个赞
如果执行它,这很简单。
member_of()
将返回方法对象检查。您必须执行以下操作才能获得结果member_of('admin')()
:
k=member_of('admin') if k():
做你的任务。
添加回答
举报