如何让Python Turtle随机执行自定义函数?
问题原因与解决方法
你的代码问题出在列表里放的是带括号的函数调用,Python创建这个列表时会立刻执行所有函数,choice只是从这些函数的返回值里挑一个打印,根本没起到随机选一个执行的作用。
修改步骤
- 把列表里的函数改成不带括号的形式,这样列表存储的是函数本身,而非函数执行结果
- 用
choice选中函数后,再添加括号调用它
修改后的代码
from random import choice # 存储函数对象(不带括号) drawing_functions = [ SonicTheHedgehogDrawing, turtle.KnucklesTheEchidnaDrawing, turtle.MilesTailsProwlerDrawing, turtle.BeanTheDynamiteDrawing, turtle.AmyTheHedgehogDrawing, turtle.EggmanDrawing, turtle.RougeTheBatDrawing, turtle.BlazeTheCatDrawing ] # 随机选择并执行函数 chosen_func = choice(drawing_functions) chosen_func()
补充说明
写函数名()时,Python会立即执行该函数;只写函数名时,Python会把它当作可调用对象保存起来,只有添加括号时才会执行。这样就能实现随机挑选一个函数执行的需求。
内容的提问来源于stack exchange,提问作者SonicSpeed17
相关产品推荐
相关产品推荐

