python局部变量的问题

clipboard.png

session.get里的digg_url明显是None,但其实我想用的是上面if...else语句里的,如果在c++中只要把digg_url声明在if语句上面即可,但是py不可以这么做。

当然解决我这个问题可以把session.get移到if语句里,但是如果我想了下如果像session.get这样引用digg_url的语句有几十句怎么办?

所以我想问下这样的问题该怎么解决?(只能设为global么?有点无语这py)

阅读 3.9k
4 个回答

Python中可以直接使用if-else中定义的变量

例如

# 前面并没有使用过b
if a == 1:
    b = 2
else:
    b = 1
print(b) #完全合法

图片描述

你的session.get中的digg_url不应该是None,你可以输出看一下。

虽然我不太熟悉python,但是可能可以在if之前给digg_url赋一个任意值?

你可以在if上定义

digg_url = None

或者使用三元运算符

digg_url = 'a' if digg else 'b'
新手上路,请多包涵

建议你使用get之前digg_url 和session都打印出来,我觉得是你逻辑错误吧。还有get里面的四二个参数headers是用来做什么的?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题