更容易接受龟的钥匙压力机?

时间:2016-02-29 21:00:55

标签: python turtle-graphics

而不是像这样做一些长而丑的事情:

    def change_variable():
        global variable
        variable+=1

    def function(var, key):
        global variable
        variable=var
        turtle.listen()
        turtle.onkey(change_variable, key)

有没有办法做到以下几点?我需要的任何模块或更新?

    turtle.onkey(variable+=1, key)

另外,能够做到以下几点会让我的事情变得容易1000倍,这可能吗?

    while 1:
        turtle.onkey(break, key)

2 个答案:

答案 0 :(得分:2)

你可以使用一个闭合并将丑陋地区整合到一个较小的区域:

MyClass

我假设全局def function(var, key): def change_variable(): nonlocal var var += 1 print(var) # just to prove it's incrementing turtle.listen() turtle.onkey(change_variable, key) 是丑陋的一部分,如果没有,你需要它,然后只需将其添加回来并将variable更改为nonlocal。这会将闭包减少到内部函数。

答案 1 :(得分:1)

解决方案:

while 1:
        turtle.onkey(break, key)

有点类似:

def outer(key):
    keep_going = True

    def quit_loop():
        nonlocal keep_going
        keep_going = False

    turtle.onkey(quit_loop, key)
    turtle.listen()
    while keep_going:
        turtle.left(70)
        turtle.forward(200)
    print("Done!")

虽然可能不是您希望的简短易用的解决方案!