jas*_*son 5 python recursion reverse function python-3.x
我想解决一个倒数问题。
这是我的递归函数,为什么Python3抱怨我的函数未定义?有什么想法吗?
class Solution:
def reverse(self, x: int) -> int:
if x < 0:
return -1 * reverse(self, x)
if x // 10 == 0:
return x
if x % 10 == 0:
return reverse(self, x // 10)
else:
return (x % 10) * 10 ** (len(str(x//10))) + reverse(self, x // 10)
Run Code Online (Sandbox Code Playgroud)
我只是遵循传统的递归函数。
方法需要通过self;递归调用 类/实例的作用域只能通过self(或类名本身)显式访问,不能通过嵌套作用域隐式访问。更改reverse(self, ...)to的所有用法self.reverse(...),它就会起作用。
您可以这样做Solution.reverse(self, ...),但这不必要地一遍又一遍地重复类名,而且self.reverse无论如何它都会比直接调用慢。