python - Python 的 UnboundLocalError 和内联变量的赋值
问题描述
这是一个返回一个方法的方法,该方法每次调用都会返回下一个斐波那契数(0、1、1、2、3、5,...)。
def make_fib():
j, k = 0, 1
def fib():
nonlocal j, k
result = j
j, k = k, j+k
return result
return fib
虽然上述工作正常,但如果我将 j 和 k 的内联赋值中断为不同的赋值,它会抛出 UnboundLocalError: local variable 'j' referenced before assignment:
def make_fib():
j, k = 0, 1
def fib():
nonlocal j, k
result = j
j = k
k = j+k
return result
return fib
这是为什么?
解决方案
推荐阅读
- azure-devops - Azure DevOps 的缩写是什么?
- mysql - 2002, "Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)" in docker-compose up
- api - Closure Compiler Service API 缺少 --create_source_map 选项
- ruby-on-rails - 如何在 Rails 中配置 CORS 接受标头
- python - Scraping HTML from array of links
- c# - 遍历列表时获取空值
- ssl - 如何从 Google Cloud Platform 上的负载均衡器中删除 SSL 证书?
- jquery - 如何使用 jquery-ajax 使用复选框制作级联下拉菜单?
- javascript - 获取支持的货币列表
- objective-c - 无法保存文档“queue.h”