未解决的参考“海龟”

问题描述 投票:0回答:1

我尝试使用以下代码从海龟导入 Turtle 和 Screen:

from turtle import Turtle, Screen


nora = turtle.Turtle()
screen = turtle.Screen()

但是编辑器(pycharm)显示-->

“未解决的参考‘海龟’”

并建议使用“importturtle”导入整个模块。

请帮忙。

enter image description here

这是编辑器的问题吗?

python import reference turtle-graphics python-turtle
1个回答
2
投票

不,这不是编辑器的问题。当您使用

from turtle import Turtle
时,不会导入整个
turtle
模块,仅导入
Turtle
模块内部的
turtle
类。

因此,您可以执行以下两件事之一:

  1. 导入模块并访问

    Turtle

    import turtle
    
    mora = turtle.Turtle()
    screen = turtle.Screen()
    
  2. 导入

    Turtle
    类并在使用时删除
    turtle.
    模块命名空间:

    from turtle import Screen, Turtle
    
    mora = Turtle()
    screen = Screen()
    

方法 2 是首选导入,因为

turtle.
模块添加了 100 多个函数,这些函数代表模块代表您管理的单例海龟。这个单例海龟可能会导致与您的实例海龟(使用
Turtle()
创建的对象)混淆。如果您始终仅导入
Turtle
类,则可以保证附加到
turtle
模块的功能单例接口不会出现任何混淆。

最危险的导入是

from turtle import *
,有时建议初学者使用它,因为它可以减少打字。但我从来不使用这个;它造成的弊大于利,因为不仅上面提到的函数接口和实例接口之间可能会出现混淆,而且变量和 120 多个乌龟函数之间可能会发生名称冲突,从而污染全局命名空间,从而导致数小时的时间调试。

© www.soinside.com 2019 - 2024. All rights reserved.