直接在海龟库上使用函数而不创建类 Turtle() 的对象

问题描述

我正在使用海龟库并直接在其上应用函数。 但我有点困惑,为什么即使我没有将它设为类 show 的对象,代码也能正常工作。 例如,hideTurtle() 在给定的代码中运行良好

turtle.color("red")

输出

screenshot of output

解决方法

来自turtle documentation

海龟模块以面向对象面向过程的方式提供海龟图形基元。

面向对象的接口本质上使用两个+两个类。

过程接口提供派生自类 ScreenTurtle 的方法的函数。它们与相应的方法具有相同的名称。只要调用从 Screen 方法派生的函数,就会自动创建一个屏幕对象。每当调用从 Turtle 方法派生的任何函数时,都会自动创建一个(未命名的)海龟对象。

要在屏幕上使用多个海龟,必须使用面向对象的界面

假设我们有一个名为 bot.py 的模块。下面是一个面向过程的脚本示例:

name = None

def greet():
    print(f"Hello {name}!")

def chat():
    print(f"So {name},how are you today?")

这是一个面向对象的脚本示例:

class Bot:
    def __init__(self,name=None):
        self.name = name

    def greet(self):
        print(f"Hello {self.name}!")

    def chat(name):
        print(f"So {self.name},how are you today?")

对于海龟模块,两个选项都可用。