所以我有一個類有兩種方法吧:從抓 「RuntimeError」 返回總是給人`None`蟒蛇
class Test:
def cycle(self, n=float("inf"), block="x"):
try:
self.cycle(n-1, block)
except RuntimeError as e:
if str(e) == "maximum recursion depth exceeded":
print("... forever")
return 10
def f(self):
try:
raise Exception()
except:
return 10
return 20
x = Test()
print(x.cycle())
print(x.f())
它輸出:
... forever
None
10
是怎麼回事?爲什麼我可以從一個除外而不是另一個返回?我可以從第一次正常打印,但它始終返回None
哼,我只是試着把'return 10'從RuntimeError中移出來,就像e:'一樣。它正在工作。 –