[英]PyCharm: Variable in finally block might be referenced before assignment?
[英]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.