为什么PyCharm会报告局部变量的“未使用”警告?

时间:2019-06-21 15:49:49

标签: python pycharm

weather_str = None
if isinstance(weather, list):
     weather_str = "\n\n".join(weather)
 else:
     weather_str = weather
 dispatcher.utter_message(
        "{}'s weather on {}:\n {}\n ".format(location, date, 
     weather_str)
 )

PyCharm将“ weather_str”显示为灰色,并警告:

Local variable 'weather_str' not used

那是为什么?这是一个清晰但令人讨厌的错误警报吗?

1 个答案:

答案 0 :(得分:2)

它可以在

中看到
if isinstance(weather, list):
    weather_str = "\n\n".join(weather)
else:
    weather_str = weather

weather_str将始终被分配给某物,因此之前使用的None值将永远不会被使用。

摆脱第一行很好。对于Python's execution model,“如果在块中定义了局部变量,则其范围将包括该块”。此外,“以下是块:模块,函数主体和类定义。”。因此,条件语句不会创建新的作用域。

另请参阅this question