在没有使用的情况下处理重新申报

时间:2017-06-27 20:32:18

标签: python

我看过以下类似的问题: Redeclared without usageredeclared in PyCharm

所以我在这里要问的是,当你提出的任何解决方案导致程序无法正常工作时,你如何处理“无需使用上述重新申报”。

例如,您可以从OpenAI docs中获取示例:

import gym

env = gym.make('CartPole-v0')

for i_episode in range(20):
    observation = env.reset()

    for t in range(100):
        env.render()
        print(observation)
        action = env.action_space.sample()
        observation, reward, done, info = env.step(action)
        if done:
            print("Episode finished after {} time steps.".format(t+1))
            break

上面的第6行(observation = env.reset())在PyCharm或IntelliJ中提供警告:

Redeclared 'observation' defined above without usage

我意识到这只是一个警告,我可以忽略它,但我发现的解决方案都没有让我摆脱这个警告。例如,将违规行移出循环是不好的。如果这样做,程序就会停止正常工作。

我希望通过处理这样的警告来提升我的Python技能。到目前为止,我搜索这个特定的只提供了导致代码中断的示例。但搜索也表明我可能应该删除此警告,因为它可能表示代码导致以后难以发现的错误。

1 个答案:

答案 0 :(得分:0)

好的做法是,为在外部作用域中所需的嵌套对象中预定义的变量预先定义变量,或者如果可能会错误地分配默认类型/值,则分配默认类型/值。正如您和其他问题/答案所说的,这是一个警告。正确。检查并非总是100%准确/有用,但要提神提示总是很好。

您可以在PyCharm中禁用此特定警告。

在PyCharm中:File> Settings> Editor> Inspections

Disabling Warning in PyCharm Settings