使用turtle的PyCharm错误语法错误

Mac*_*eus 3 python turtle-graphics code-inspection pycharm

下面的代码完美无缺,然而,PyCharm抱怨语法错误 forward(100)

#!/usr/bin/python
from turtle import *

forward(100)

done()
Run Code Online (Sandbox Code Playgroud)

既然turtle是stanrd库我不认为我需要做额外的配置,对吗?

在此输入图像描述

ale*_*cxe 10

forward()通过__all__turtle模块中指定源代码中的相关部分,该功能可用于导入:

_tg_turtle_functions = [..., 'forward', ...]
__all__ = (_tg_classes + _tg_screen_functions + _tg_turtle_functions +
           _tg_utilities + _math_functions)
Run Code Online (Sandbox Code Playgroud)

目前,pycharm无法看到模块__all__列表中列出的对象,因此将它们标记为unresolved reference.它的bugtracker中存在一个未解决的问题:

从方法创建函数:如果存在星号导入用法,则更新__all__

另请参阅:有人可以在Python中解释__all__吗?


仅供参考,您可以添加noinspection注释以告知Pycharm不要将其标记为未解析的引用:

from turtle import *

#noinspection PyUnresolvedReferences
forward(100)

done()
Run Code Online (Sandbox Code Playgroud)

或者,禁用特定范围的检查.


当然,严格来说,您应该遵循PEP8避免使用通配符:

import turtle

turtle.forward(100)
turtle.done()
Run Code Online (Sandbox Code Playgroud)