(我完全理解return
仅在函数内部有意义。)
我的问题是:考虑到以下代码中的mylist
不是None,有没有办法防止Python将return
的存在标记为语法错误并中断执行? / p>
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被忽略了。
答案 0 :(得分:1)
您要的是不可能的。解析过程中会检测到语法错误,这些错误发生在运行时之前/代码运行之前,或者可以评估任何if语句。
答案 1 :(得分:0)
通过使用Python调试(pdb)包,您可以调试代码。 Python PDB Docs
答案 2 :(得分:0)
如果要在函数内部和外部使用大量代码,则可以在特定条件下使用不同于'return'的东西来退出执行,例如exit()或quit()或引发错误,例如
def test_fct():
list = [1,2,3]
if list is None:
raise RuntimeError("Invalid value")
list = list + [4]
OR
def test_fct():
list = [1,2,3]
if list is None:
exit(1)
list = list + [4]
内部退出和退出会引发SystemExit,并将终止/重新启动整个python解释器,请参见。也 Python exit commands - why so many and when should each be used?
顺便说一句,我会避免命名变量“列表”,因为这会掩盖内置类型“列表”。