Python PyCharm:找不到引用';xxx和x27;在';turtle.py';
我试着画一个内置了自由乌龟的五角星 环境:Python PyCharm:找不到引用';xxx和x27;在';turtle.py';,python,reference,pycharm,Python,Reference,Pycharm,我试着画一个内置了自由乌龟的五角星 环境: 视窗10 Python 3.5 PyCharm社区版2017.1.5 代码: 导入海龟 海龟。填充颜色(‘红色’) 乌龟,开始填充 尽管如此: 乌龟前进(200) 海龟,对(144) 如果abs(turtle.pos())小于1: 打破 乌龟 turtle中的所有方法,包括'fillcolor'、'begin_fill'、'forward'、'right'和'pos'等,都会受到PyCharm的警告,“在'turtle.py'中找不到引用'xxx
- 视窗10
- Python 3.5
- PyCharm社区版2017.1.5
导入海龟
海龟。填充颜色(‘红色’)
乌龟,开始填充
尽管如此:
乌龟前进(200)
海龟,对(144)
如果abs(turtle.pos())小于1:
打破
乌龟
turtle中的所有方法,包括'fillcolor'、'begin_fill'、'forward'、'right'和'pos'等,都会受到PyCharm的警告,“在'turtle.py'中找不到引用'xxx'”,并且这些方法的自动完成失败,同时出现警告。但奇怪的是,这个脚本能够像预期的那样正常、正确地运行
我一直在寻找答案,有几个相关的问题,但实际上不一样:
- 我几乎相信我正在使用turtle for Python3.x,因为我的笔记本电脑中只有一个turtle.py文件,位于目录“C:\Python35\Lib”下。顺便说一句,如果我仍然可能使用turtle for Python2.x,我如何检查此信息以及如何在默认目录中更新此内置库
- 我几乎相信我没有使用virtualenv,我的项目的解释器是Python 3.5.2
(不幸的是,我仍然无法上传图像)问题出在\Lib\turtle.py中 魔法变量all定义如下:
__all__ = (_tg_classes + _tg_screen_functions + _tg_turtle_functions +
_tg_utilities + ['Terminator']) # + _math_functions)
PyCharm在扫描包时不执行此代码。因此PyCharm无法定义哪些函数可以在模块级使用
因此,您可以更改turtle.py:
# __all__ = (_tg_classes + _tg_screen_functions + _tg_turtle_functions +
# _tg_utilities + ['Terminator']) # + _math_functions)
__all__ = ['ScrolledCanvas', 'TurtleScreen', 'Screen', 'RawTurtle', 'Turtle', 'RawPen', 'Pen', 'Shape', 'Vec2D', 'back',
'backward', 'begin_fill', 'begin_poly', 'bk', 'addshape', 'bgcolor', 'bgpic', 'bye', 'clearscreen',
'colormode', 'delay', 'exitonclick', 'getcanvas', 'getshapes', 'listen', 'mainloop', 'mode', 'numinput',
'onkey', 'onkeypress', 'onkeyrelease', 'onscreenclick', 'ontimer', 'register_shape', 'resetscreen',
'screensize', 'setup', 'Terminator', 'setworldcoordinates', 'textinput', 'title', 'tracer', 'turtles',
'update', 'window_height', 'window_width', 'write_docstringdict', 'done', 'circle', 'clear', 'clearstamp',
'clearstamps', 'clone', 'color', 'degrees', 'distance', 'dot', 'down', 'end_fill', 'end_poly', 'fd',
'fillcolor', 'filling', 'forward', 'get_poly', 'getpen', 'getscreen', 'get_shapepoly', 'getturtle', 'goto',
'heading', 'hideturtle', 'home', 'ht', 'isdown', 'isvisible', 'left', 'lt', 'onclick', 'ondrag', 'onrelease',
'pd', 'pen', 'pencolor', 'pendown', 'pensize', 'penup', 'pos', 'position', 'pu', 'radians', 'right', 'reset',
'resizemode', 'rt', 'seth', 'setheading', 'setpos', 'setposition', 'settiltangle', 'setundobuffer', 'setx',
'sety', 'shape', 'shapesize', 'shapetransform', 'shearfactor', 'showturtle', 'speed', 'st', 'stamp', 'tilt',
'tiltangle', 'towards', 'turtlesize', 'undo', 'undobufferentries', 'up', 'width', 'write', 'xcor', 'ycor']
您还可以使用Turtle类:
T = turtle.Turtle()
T.fillcolor('red')
etc
你正在用蟒蛇3和蟒蛇2编写代码。确保您有用于python3的turtle,我几乎相信我正在使用turtle用于python3,因为在我的PC中,目录“C:\Python35\Lib”下只有一个turtle.py。我将更新我的问题描述。这是可行的,但我的Turtle应用程序在PyCharm中运行时不会像在命令行中运行时那样响应键盘输入。
T = turtle.Turtle()
T.fillcolor('red')
etc