首页 Python Python – 可以在不明确使用名称的情况下调用自身吗?

Python – 可以在不明确使用名称的情况下调用自身吗?

或者更广泛的问题:如何在python中创建递归函数,并且在更改其名称时,只需要在声明中进行更改?最佳答案我发现了一个简单,有效的解决方案from functools import wraps def recfun(f): @wraps(f) def _f(*a, **kwa): return f(_f, *a, **kwa) ret

或者更广泛的问题:如何在python中创建递归函数,并且在更改其名称时,只需要在声明中进行更改?
最佳答案
我发现了一个简单,有效的解决方案

from functools import wraps

def recfun(f):
    @wraps(f)
    def _f(*a,**kwa): return f(_f,*a,**kwa)
    return _f

@recfun
# it's a decorator,so a separate class+method don't need to be defined
# for each function and the class does not need to be instantiated,# as with Alex Hall's answer
def fact(self,n):
    if n > 0:
        return n * self(n-1)  # doesn't need to be self(self,n-1),# as with lkraider's answer
    else:
        return 1

print(fact(10))  # works,as opposed to dursk's answer

本文来自网络,不代表云浮站长网立场。转载请注明出处: https://www.0766zz.com/html/kaifa/python/20200906/10147.html
上一篇
下一篇

作者: dawei

【声明】:云浮站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部