我有一个字典路径,如果设置不正确,我希望它调用命令
import os
import platform
import logging
paths={}
def setup_paths():
path_root=get_project_root()
paths['root']=path_root
paths['documents']=lambda :createError('system',0,'Folder not Found')
def createError(sender,level,error):
#Do something
return errorMessage
所以当我调用路径['documents'](或其他错误的东西),我可以处理一些事情,但仍然得到一个正常的字符串或任何[level,errorMessage]。你能像这样简单地做吗?
我可以t Tab
我试过一次lambda,然后放弃了,来到这里。我的理解是:
lambda m:method(Args)
#turns m into an abstract method method(Args)
#so that you call m and not method(Args)
这是我所知道的唯一将方法作为参数传递的方法,参数为
所以我找到了答案,并彻底认为它很酷,想分享,所以…
#you can pass along a Method as a Variable
m=lambda arg,arg2:_method(arg,arg2)
#then call on it latter
m()
用这个我可以设置一个方法值
if: os.path.exsits(pathTOdoc): path['Document']=pathTOdoc
else: path['Documents']=lambda :errorHandle(name,errorLVL,'Document Not Found')
现在当我调用path['Documents'](或get path方法)时,它将执行一个错误处理,而我可以处理任何正常返回
像这样,你也可以给子类一个回调方法