我正在使用 python 3.x 我有很多變數和很多功能。我必須將這些變數分配給函式的值,例如:
x1 = f1()
x2 = f2()
......
這些函式可能會拋出例外,在這種情況下我需要回傳 None。我想寫一個函式來完成這個任務。
assign(x1,f1).
任何想法如何實作它。
uj5u.com熱心網友回復:
不,從函式內部分配給變數是不可能的,但無論如何都不需要將分配封裝到該函式中:
def safely_call(f, *args, **kwargs):
try:
return f(*args, **kwargs)
except Exception:
logging.exception('Call to %s (%s, %s) failed', f, args, kwargs)
return None
x1 = safely_call(f1)
x2 = safely_call(f2)
uj5u.com熱心網友回復:
您可以使用裝飾器。裝飾器捕獲例外并回傳 None。
def exception_handler(func):
def inner_function(*args, **kwargs):
try:
return func(*args, **kwargs)
except:
return None
return inner_function
@exception_handler
def myFunc(length):
pass
uj5u.com熱心網友回復:
這可能是你想要的東西:
def f1():
return 1/0
def f2():
return 5
def assign(fn):
try:
result = fn()
except:
result = None
return result
x1 = assign(f1)
x2 = assign(f2)
print(x1," ",x2)
輸出:
None 5
可能可以進一步縮短和優化,但這個想法應該可行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/333268.html
上一篇:用Selenium找不到一個按鈕
