NameError: 全局名称 'reverse' 未定义
我刚接触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])
我正在尝试用反向的方法进行递归调用……请帮帮我。谢谢!
2 个回答
4
在你的类 Reverse
中,reverse
是一个方法,所以你需要像调用方法一样来使用它:
print var[-1] + self.reverse(var[:-1])
注意 self
的用法。
4
跟一些其他编程语言不同,在Python中,this
是隐含的,而你需要明确地使用self
来表示实例方法或变量。所以在Reverse
这个类里,你必须明确地写出
self.reverse(var[:-1])
当然,reverse
这个方法并不会返回任何东西,所以你需要把它改成
return var[-1] + self.reverse(var[:-1])