在 python 2.7 版中,turtle和Turtle有什么不同?
import turtle
star = turtle.Turtle()
for i in range(50):
star.forward(50)
star.right(144)
turtle.done()
在 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 是该类的名称。使用 from turtle import * 消除了对 turtle.Turtle 的需要。
简单来说,turtle就是用来实例化类的包或者库和Turtle()类的构造方法。
turtle
是包Turtle
的名称,而是类的名称。
导入模块的另一种方法是:
import turtle.Turtle
另外,你确定最后一行是turtle.done()
而不是star.done()
?
turtle 是一个方法,它包含一个高贵的 Turtle 类
第一个海龟被调用turtle
并被它的名字或变量引用,该turtle.Turtle
方法创建一个新的海龟并且(大多数时候),你将它设置为一个变量。