(我完全理解return只有在函数内部才有意义。)
我的问题是:鉴于以下代码中的mylist不是None,有没有办法防止Python将return标记为语法错误,并中断执行?
mylist = [1,2,3]
if mylist is None:
return []
mylist = mylist + [4]我之所以这样问,是因为我经常在函数中运行代码块,一步一步地看看它做了什么。
显然,当if语句的条件满足时,我并不介意代码执行被中断。
但我想知道是否有一种方法可以防止python在其条件不满足的if语句中检查语法错误。
按照下面的建议,我正在尝试让python使用try/except忽略语法错误:
try:
mylist=[1,2]
if mylist is None:
return []
except SyntaxError:
pass但是执行仍然会中断,并显示一条关于在函数外部使用return的消息,就好像try/except被忽略了一样。
发布于 2019-11-29 01:37:52
你所要求的是不可能的。语法错误在解析过程中被检测到,这发生在运行时之前/甚至在代码运行之前,或者任何if语句都可以被计算出来。
发布于 2019-11-26 02:06:20
通过使用Python调试(pdb)包,您可以调试代码。Python PDB Docs
发布于 2019-11-26 02:50:23
如果你想在函数内部和外部使用一段代码,你可以在某个条件下使用不同于'return‘的东西来退出执行,例如exit()或exit (),或者引发一个错误,例如
def test_fct():
list = [1,2,3]
if list is None:
raise RuntimeError("Invalid value")
list = list + [4]或
def test_fct():
list = [1,2,3]
if list is None:
exit(1)
list = list + [4]退出并退出内部引发SystemExit,并将终止/重新启动整个python解释器,cf。也就是Python exit commands - why so many and when should each be used?
顺便说一句,我会避免将变量命名为'list‘,因为这会遮蔽内置类型'list’。
https://stackoverflow.com/questions/59037386
复制相似问题