【发布时间】:2015-01-04 08:39:03
【问题描述】:
我正在尝试编写一个简单的 Python 程序。它应该返回一个返回连续斐波那契数的闭包:
def fibGen():
n_1 = 0
n_2 = 0
n = 1
def fib():
if n_1 ==0 and n_2 ==0:
n_1 = 1
return n
else:
n = n_1 + n_2
n_2 = n_1
n_1 = n
return n
return fib
f = fibGen()
for i in range(0,10):
print(f())
我在运行时收到此错误:
UnboundLocalError: local variable 'n_1' referenced before assignment
编辑:在我原来的帖子中,我没有在fibGen 的定义中包含n = 1,但这实际上是一个错字。无论如何,我仍然会遇到同样的错误。
【问题讨论】:
标签: python python-3.x closures fibonacci