Ale*_*ter 1 python exception standard-library
我正在寻找一个标准函数(运算符,装饰器),它等同于下面的手写函数:
def defaulted(func, defaultVal):
try:
result = func()
except:
result = defaultVal
return result
Run Code Online (Sandbox Code Playgroud)
谢谢!
在stdlib中没有类似的东西(据我所知).首先,这是不好的做法:你永远不应该使用裸露的except.(相反,请指定您要捕获的异常;这样,您将无法捕获所有内容!)
这是一个装饰者:
>>> def defaultval(error, value):
... def decorator(func):
... def defaulted(*args, **kwargs):
... try:
... return func(*args, **kwargs)
... except error:
... return value
... return defaulted
... return decorator
...
>>> @defaultval(NameError, "undefined")
... def get_var():
... return name
...
>>> get_var()
'undefined'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |