我从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()不会引起任何问题。
有人可以告诉我我做错了什么吗?我有一种感觉,这可能是非常明显的事情,但我无法弄清楚它是什么。
最佳答案
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()
关于python - 未绑定(bind)本地错误 : local variable . 。赋值前引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31495050/