繁体   English   中英

在尝试块中无法识别Pycharm变量分配

[英]Pycharm variable assignment not recognized inside try block

try:
    driver = launch_browser()
except:
    print "Browser launch failed"

driver.get("http://www.example.com/")

PyCharm将上述最后一行标记为以下问题:

分配前可能会引用局部变量“ driver”

但是,类似这样的错误会消失:

driver = None
try:
    driver = launch_browser()
except:
    print "Browser launch failed"

driver.get("http://www.example.com/")

有没有一种方法可以设置PyCharm,以便它可以在try块中看到分配?

其次,如果PyCharm具有文档字符串,是否可以根据函数的返回值(在本例中为launch_browser() )确定类型?

顺便说一句,代码在两种情况下都可以正常工作。 只是让PyCharm理解try块中的任务而不必求助于创可贴。

编辑1:

就PyCharm而言, except:块中的return解决了该问题。 我在做其他事情,无意间将其注释掉。 证明连续进行16个小时的编码是一个非常糟糕的主意...

如果launch_browser()失败,您的代码将在driver.get("http://www.example.com/")行处错误。 PyCharm让您知道这一点。

避免这种情况的唯一方法是不执行except任何操作,例如在异常内抛出异常,或将所有依赖于driver放入else块中,这些操作仅在未捕获异常的情况下运行。 例如

try:
    driver = launch_browser()
except:
    print "Browser launch failed"
else:
    driver.get("http://www.example.com/")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM