python的新手。。。确实与这个奇怪的错误混淆了。
我不认为我做错了,是吗?

main.py

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()


methods.py

class Reverse():

  def __init__(self):
    print "initialized reverse"

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


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

最佳答案

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

self.reverse(var[:-1])


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

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

关于python - NameError:未定义全局名称“reverse”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15059838/

10-16 03:18