1

python的新手......真的对这个奇怪的错误感到困惑......我不认为我做错了什么,是吗?

主文件

from methods import Reverse

def main ():

    b = [1,2,3,4,5,6,6,7,8,8,9,1,212,312,31,23,123455435,56,56,123]
    a = "llaa"

    thing = Reverse()
    print thing.reverse(a)


main()

方法.py

class Reverse():

  def __init__(self):
    print "initialized reverse"

  def reverse(self,var):
    if var == "":
      return var
    else: 
      print var[-1] + reverse(var[:-1])

我正在尝试使用反向进行递归调用......请帮助。谢谢!

4

2 回答 2

4

在您的类Reverse中,reverse是一个方法,因此您需要将其作为方法调用:

print var[-1] + self.reverse(var[:-1])

注意self.

于 2013-02-25T03:59:01.070 回答
4

与其他一些this隐含的语言不同,Python 要求您self在使用实例方法或变量时明确说明,因此Reverse您需要明确说明

self.reverse(var[:-1])

当然reverse不会返回任何内容,因此您需要将其更改为

return var[-1] + self.reverse(var[:-1])
于 2013-02-25T04:02:07.913 回答