Python 2.7 版本中的 turtle 和 Turtle 有什么不同?
import turtle
star = turtle.Turtle()
for i in range(50):
star.forward(50)
star.right(144)
turtle.done()
海龟模块很不寻常。为了让新手程序员更容易上手,Turtle 类的所有方法也可用作对默认(未命名)turtle 实例进行操作的顶级函数。 Screen 类的所有方法也可用作在默认(唯一)屏幕实例上运行的顶级函数。所以这两个:
import turtle
star = turtle.Turtle() # turtle instance creation
for i in range(5):
star.forward(50) # turtle instance method
star.right(144) # turtle instance method
screen = turtle.Screen() # access sole screen instance
screen.mainloop() # screen instance method
还有这个:
import turtle
for i in range(5):
turtle.forward(50) # function, default turtle
turtle.right(144)
turtle.done() # function, mainloop() synonym, acts on singular screen instance
都是有效的实现。许多海龟程序最终将函数接口与对象接口混合在一起。为了避免这种情况,我强烈建议使用以下导入语法:
from turtle import Turtle, Screen
这迫使对象方法使用turtle,使得函数方法不可用:
from turtle import Turtle, Screen
star = Turtle() # turtle instance creation
for i in range(5):
star.forward(50) # turtle instance method
star.right(144) # turtle instance method
screen = Screen() # access sole screen instance
screen.mainloop() # screen instance method
简单来说,turtle就是包或库以及用于实例化类的Turtle()类构造方法。
希望您玩得开心! “turtle”实际上是我们使用的模块。 乌龟或者我们可以说是乌龟。乌龟实际上是一个物体,你可以移动它改变速度、颜色、形状......
在这里你可以看到一个例子:
enemy = turtle.Turtle(shape="rabbit.gif")
enemy.penup()
enemy.speed(0)
enemy.setposition(400, -180)
或另一个:
player = turtle.Turtle(shape="turtle.gif")
player.penup()
player.speed(0)
player.left(90)
player.setposition(-400, -200)
或:
border = turtle.Turtle()
border.speed(0)
border.color("white")
border.penup()
border.setposition(-300, -300)
border.pendown()
border.pensize(3)
border.hideturtle()
希望有帮助!
turtle
是您导入的模块,而 Turtle
是类的名称。使用 from turtle import *
就不再需要 turtle.Turtle
。
turtle
是包的名称,而 Turtle
是类的名称。
导入模块的另一种方法是:
import turtle.Turtle
另外,你确定最后一行是
turtle.done()
而不是star.done()
吗?
turtle 是模块的名称,Turtle 是类/函数的名称,所以当你运行时
from turtle import Turtle
您正在阅读turtle模块,其中包含所有不同类的列表,但您只是导入Turtle类。
turtle 是一个方法,其中包含一个高贵的 Turtle 类