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 装饰器走得更远,因此您可以将最后一个函数作为类属性访问。