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
那是为什么?这是一个清晰但令人讨厌的错误警报吗?
答案 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