将递归函数实现为静态方法的正确方法是什么?
以下是我如何使用它。我想知道是否有更好的"实现这一目标的方式,留下更清晰的内存占用,看起来更加pythonic等。
class MyClass(object):
@staticmethod
def recursFun(input):
# termination condition
sth = MyClass().recursFun(subinput)
# do sth
return sth
答案 0 :(得分:4)
您不需要该类的实例来执行正确的名称查找;班级本身也会这样做。
recursive_function
限定名称是必需的,因为当您执行名称查找时,MyClass.recursive_function
将不在范围内;只有<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">../src</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-clover" target="./clover.xml"/>
</logging>
会。
答案 1 :(得分:0)
改为classmethod
:
class MyClass(object):
@classmethod
def recursFun(celf, input):
# termination condition
sth = celf.recursFun(subinput)
# do sth
return sth
#end recursFun
#end MyClass
如果需要,这也可以更容易地对类进行子类化。