You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将命令作为函数参数传入?Python Turtle库实现方法问询

解决方法

你的代码有两处关键问题,同时有两种可行的方式实现“将命令作为参数传递”的需求:

问题分析

  1. pen = t.Turtle 缺少实例化括号,应该写成 pen = t.Turtle(),否则pen只是类对象,不是可调用的实例。
  2. 直接写 pen.name(var) 无法识别传入的命令名,Python 不会把name变量当作方法名解析,需要通过方法对象或者属性获取的方式实现。

方法一:直接传递方法对象

直接把turtle实例的方法作为参数传入函数,在函数内直接调用该方法:

import turtle as t

pen = t.Turtle()  # 实例化Turtle对象

def orders(cmd, var):
    cmd(var)  # 调用传入的方法并传递参数

orders(pen.forward, 50)
orders(pen.right, 90)
t.done()

方法二:传递方法名字符串,通过getattr获取方法

如果需要以字符串形式传递命令名,可以用getattr()函数从实例中取出对应的方法再调用:

import turtle as t

pen = t.Turtle()

def orders(cmd_name, var):
    # 根据字符串获取pen对象的对应方法
    cmd = getattr(pen, cmd_name)
    cmd(var)

orders("forward", 50)
orders("right", 90)
t.done()

两种方法都能实现你期望的pen.forward(50)和pen.right(90)的执行效果。

内容的提问来源于stack exchange,提问作者Raihan Ahamad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:42:04