查看源码方法,略。
一、发现疑问
测试
import turtle as t
print(type(t))#打印t的类型
t.forward(100)#使用海归的方法
t.done()#阻止窗口关闭
结果:
疑问: 为什么是模块类型,却能调用海归方法?
二、源码解答
1.import turtle引入的就是名称为turtle.py的文件,文件里面有好多类,包括Turtle类
知识拓展:Python的模块、包和库的区别https://blog.csdn.net/tscaxx/article/details/103680363
2.Turtle类里面的方法变成了全局方法,所以才能使用 turtle模块.Turtle类的方法
源码里面,这两个全局方法,将turtle模块中的_Screen、Turtle中的一些方法转成了全局方法。类加载的时候执行。
3.相当于,默认turtle模块里面有一个Turtle类的对象。我们还可以创造好多Turtle对象。
import turtle as t
print(type(t))#打印t的类型
t.forward(100)#默认的Turtle对象
t1 = t.Turtle()#创建第一个Turtle对象t1
t1.right(90)
t1.forward(100)
t2 = t.Pen()#创建第二个Turtle对象t2
t2.right(-90)
t2.forward(100)
结果:
说明:
t.Turtle()和t.Pen()一样
源码解析: