首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止Python检查不满足条件的if语句中的语法错误

防止Python检查不满足条件的if语句中的语法错误
EN

Stack Overflow用户
提问于 2019-11-26 01:42:27
回答 3查看 223关注 0票数 2

(我完全理解return只有在函数内部才有意义。)

我的问题是:鉴于以下代码中的mylist不是None,有没有办法防止Python将return标记为语法错误,并中断执行?

代码语言:javascript
复制
mylist = [1,2,3]
if mylist is None: 
    return []
mylist = mylist + [4]

我之所以这样问,是因为我经常在函数中运行代码块,一步一步地看看它做了什么。

显然,当if语句的条件满足时,我并不介意代码执行被中断。

但我想知道是否有一种方法可以防止python在其条件不满足的if语句中检查语法错误。

按照下面的建议,我正在尝试让python使用try/except忽略语法错误:

代码语言:javascript
复制
try:
    mylist=[1,2]
    if mylist is None:
        return []
except SyntaxError:
    pass

但是执行仍然会中断,并显示一条关于在函数外部使用return的消息,就好像try/except被忽略了一样。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-29 01:37:52

你所要求的是不可能的。语法错误在解析过程中被检测到,这发生在运行时之前/甚至在代码运行之前,或者任何if语句都可以被计算出来。

票数 1
EN

Stack Overflow用户

发布于 2019-11-26 02:06:20

通过使用Python调试(pdb)包,您可以调试代码。Python PDB Docs

票数 0
EN

Stack Overflow用户

发布于 2019-11-26 02:50:23

如果你想在函数内部和外部使用一段代码,你可以在某个条件下使用不同于'return‘的东西来退出执行,例如exit()或exit (),或者引发一个错误,例如

代码语言:javascript
复制
def test_fct():
   list = [1,2,3]
   if list is None: 
       raise RuntimeError("Invalid value") 
   list = list + [4]

代码语言:javascript
复制
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’。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59037386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档