我开始使用python。我正在尝试一个非常简单的类结构,但我得到一个错误。
这是我的剧本:
class controller:
def initLocal(self):
path = input('path:')
local = local()
local.path = path
return local
class location:
pass
class local(location):
path = None
controller = controller()
local = controller.initLocal()
这是我进入控制台的结果:
path:a
Traceback (most recent call last):
File "path\to\test.py", line 21, in <module>
local = controller.initLocal();
File "path\to\test.py", line 5, in initLocal
local = local();
UnboundLocalError: local variable 'local' referenced before assignment
我搜索了这个错误,并发现它通常必须对不正确的范围做一些事情。但是,我不知道我在这里做错了什么。拥有与类同名的类实例是“非法的”吗?
如果我将initLocal()方法更改为:
def initLocal(self):
path = input('path:')
locale = local()
locale.path = path
return locale
它有效,但我找不到原因,因为controller = controller()不会导致任何问题。
有人可以告诉我我做错了什么吗?我觉得它可能是非常明显的东西,但我无法弄清楚它是什么。
答案 0 :(得分:1)
class Location:
pass
class Local(location):
path = None
class Controller:
def initLocal(self):
path = raw_input('path:')
local = Local()
local.path = path
return local
controller = Controller()
local = controller.initLocal()