Python:如何编写一个使用多个参数循环自身的函数?

Dus*_*usk 0 python function python-2.7

这个简单的循环工作得很好:

>>> def loop (i):
        i+=i
        if 0<i<20:
            print i
            loop(i)


>>> loop (1)
2
4
8
16
Run Code Online (Sandbox Code Playgroud)

但这不起作用,它意外退出循环:

>>> from functools import partial
>>> def loop (i):
        i+=i
        if 0<i<20:
            print i
            partial(loop,i)


>>> loop(1)
2
>>> 
Run Code Online (Sandbox Code Playgroud)

有什么问题?有没有办法让它以某种方式工作?

这只是一个简单的功能......我真正的问题是:

问:如何编写一个能够循环自身的函数,每次只使用多个参数?我应该看看其他地方(除了部分)吗?

thk*_*ang 5

partial创建一个可调用的,所以..

def loop (i):
        i+=i
        if 0<i<20:
            print i
            partial(loop,i)()
Run Code Online (Sandbox Code Playgroud)