乌龟和龟的区别?

问题描述:

如何在Python 2.7彼此不同势?乌龟和龟的区别?

import turtle 
star = turtle.Turtle() 
for i in range(50): 
    star.forward(50) 
    star.right(144) 
turtle.done() 
+0

龟是包含类龟的模块。如果您在默认的Python库文件夹中使用Debian OS检查。 。例如,/ usr /库/蟒蛇(版本)/龟 – repzero

turtle是包的名称,而Turtle是类的名称。

导入类的另一种方法是

import turtle.Turtle 

另外,你确定最后一行是turtle.done(),而不是star.done()

+0

或'从龟进口Turtle'但你会在当前模块中只有'Turtle'更换'turtle.Turtle'到处 –

+0

'star.done()'会是一个错误,'turtle.done()'是有效的。 'done()'顶层函数是'mainloop()'顶层函数的同义词,不适用于乌龟实例。作为顶级函数,'mainloop()'调用单一屏幕实例的同名方法。 – cdlane

+0

我确信turtle.done()和done()一样属于'_tg_utilities' – Jdpurohit

乌龟模块是不寻常的。为了让开始的程序员更容易,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 

这迫使对象的方法来使用龟,使功能的方法不可用:

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