Skip to main content
 首页 » 编程设计

python之Python 标准模块中是否有此功能的类似物

2025年05月04日11jiqing9006

我正在寻找等同于以下手写函数的标准函数(运算符、装饰器):

def defaulted(func, defaultVal): 
   try: 
      result = func() 
   except:  
      result = defaultVal 
 
   return result 

谢谢!

请您参考如下方法:

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'