python - 我该如何解决这个循环功能?

L 36 [L 4 [F 100 R 90] R 10]

解释:该程序首先在右括号内循环 36 次,在 4 次内循环绘制 F 100 和 R 90(基本正方形绘制),然后向右 10 度并再次绘制正方形。

我有项目,所以我想做这样的函数,但我的代码不起作用。我将 F 和 R 函数作为参数添加到 L 函数,但我不能将 L 函数作为参数添加到 L 函数。我该如何解决这个问题?

从龟进口龟,屏幕

s = 屏幕() t = 海龟()

定义 F(value):

t.forward(value)

定义 R(value):

t.right(value)

def L(value1, *args, **kw):

for i in range(value1):

    for func in args:

        func(kw[func.__name__])

对于范围内的 i (36):

L(4, F, R, F=100, R=90)
L(1, R, R=10)

我可以这样做并且可以工作,但我不能在一个功能中使用。

s.exitonclick()

回答1

尝试将所有函数定义为类中的方法

for i in range(36)... 也应该是一种方法。

如果 36 是常数,则保持原样。如果它是一个 var,则为该类定义它。

您可以使用@property 装饰器走得更远,因此您可以将最后一个函数作为类属性访问。

相似文章

gekko - Gekko 大型 MINLP 半连续变量问题

我目前正在尝试解决有关隔离微电网应用(连接到电力负载的光伏+电池+柴油发电机)的MINLP优化问题。优化问题是非线性的,从方程/变量的数量(<5000)来看并没有那么大。但是,有一个单位承诺问题:柴油...

随机推荐

最新文章