是否可以向主文件添加元组列表,以便仅通过索引即可调用 turtle?
spisok = [(t.right(90), t.forward(60), t.left(90), t.forward(30), t.left(90), t.forward(60)),
(t.penup(),t.right(45),t.forward(30),t.pendown(),t.left(90), t.forward(30)...)],
而且名单公布之后呢?仅通过输入访问列表索引。并且只绘制被调用的索引。
任务本身听起来是这样的:
使用元组列表来指定 Turtle 如何绘制数字。
我想不出一个设计,让乌龟只在我要求时才画画。
让我向您展示这个想法本身,然后您可以想出一些适合您自己需要的东西。
主要思想是,在元组中存储的不是方法调用的结果,而是方法本身(对函数的引用)以及它们的参数:
算法:从列表中选择所需的元组>对其进行迭代>提取所需的方法及其参数>使用其参数调用该方法。
朱镕基当然,你可以单独去思考数据结构,但是我认为主要思想应该很清楚了。
如果需要执行一系列操作,请将其格式化为函数。将几个序列收集到一个列表中。通过索引从列表中选择一个函数并执行它:
我将以命令的形式提出一种替代方案,该命令可应用于模块全局命名空间中的
exec形式的行。构造蓝色等边三角形的示例:"forward(100); left(90); ..."turtle在模块级别,
turtle绘图函数被定义为默认类对象上同名方法的包装器Turtle。该对象被存储为有条件的私有属性Turtle._pen。在执行命令之前,必须给自定义海龟指定该属性,以便它进行绘图。建议保存原始海龟,并事先明确地初始化它(默认情况下,它None在模块级别的第一次调用任何绘图函数之前设置在那里)。也就是说,最低限度的准备工作是这样的:我没有找到任何可以改变默认海龟的功能。因此我们使用直接赋值。
它可能是什么样子的: