PyCharm - 外部范围的阴影名称

PyCharm - Shadows name from outer scope

我正在学习 Python 并且正在尝试将我从视频教程中学到的概念添加到其中。我刚看了一个关于 If 语句和比较的视频,我想通过获取用户的输入来添加到视频中所做的事情。我收到了“shadows name 'ans' from outer scope”警告,并且看到其他人在网站上问过这个问题,但他们的示例不涉及从用户那里获取输入。预先感谢您的帮助!

ans = input("What color is the sky? ")


def color(ans):
    if ans == str("Blue"):
        return str("Correct!")
    else:
        return str("Incorrect.")


print(color(ans))

首先 - 警告特定于 pycharm,您的代码应该 运行 正确。

现在,有两种方法可以消除警告:

  • 您可以重命名函数中使用的参数,而不是给它相同的名称 ans,您可以选择不同的名称,例如answer.

  • 另一种方法是在 pycharm 中抑制此警告:

    # noinspection PyShadowingNames
    def color(ans):
        # rest of the code...