python - python nonlocal - 为什么有时需要它有时不需要
问题描述
我知道为什么我们需要在 Python 中声明 nonlocal 并且对以下示例有点困惑。如果没有nonlocal records
第 276records
行,则第 277 行没有定义。但是,records
可以在第 289 行中使用而不会出现任何错误。
解决方案
nonlocal
声明类似于global
声明。仅当函数分配给变量时才需要两者。通常,这样的变量将成为函数的局部变量。nonlocal
andglobal
声明导致它引用存在于函数外部的变量。
如果函数没有分配给变量,则不需要声明,它会自动在更高的范围内查找它。
推荐阅读
- vue.js - 如何使用 vue-router 将活动链接保持在非精确路由中
- swift3 - 将 NSCalendar 更新为 Swift3
- elixir - 混合测试后未定义的_path
- java - 使用 Android Room,我是否需要为嵌套对象添加 setter 和 getter?
- java - 泛型 setter 方法不兼容类型错误
- python - Python - 如何将元组列表排序到字典或等效项?
- python - 如何循环 dict 并将值用作对象的函数?
- python - 如何获取最大价值
- sonarqube - 在 sonarqube 7.3 中迁移特定项目
- java - 使用 Rx java Observable 一次进行多个异步调用(触发并忘记调用)