'How can I solve this loop function?

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

Explanation : This program first loop 36 times inside the closed paranthesis and inside 4 times draw F 100 and R 90 (basic square draw) then right 10 degrees and draw square again.

I have project so I want to do functions like this but my code does not working.I add F and R functions as an argument to L function but I cant add L function as an argument to L function.How can I solve this?

from turtle import Turtle,Screen

s = Screen() t = Turtle()

def F(value):

t.forward(value)

def R(value):

t.right(value)

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

for i in range(value1):

    for func in args:

        func(kw[func.__name__])

for i in range(36):

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

I can do like this and work but I cant in one function.

s.exitonclick()



Solution 1:[1]

Try defining all of your functions as methods inside a class

for i in range(36)... should be a method as well.

If 36 is a constant, leave it as is. If it's a var, define it as such for the class.

You could go even further with @property decorators, so you can access the last function as an class atribute.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Nastavnik Bosanskog