作用域、名称绑定与函数协作
Python 数据类型、函数与异常处理#Python全栈#第二阶段#Python 数据类型、函数与异常处理#作用域、名称绑定与函数协作约 559 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
LEGB 名称查找顺序是什么?
追问 局部、外层函数、模块全局与内置名称各来自哪里?
函数内部读取全局变量与修改全局名称绑定有什么区别?
追问 为什么修改全局列表的内容与给全局变量重新赋值不完全一样?
局部变量在赋值前读取,为什么可能出现 UnboundLocalError?
追问 阅读“全局定义 x,函数中先打印 x 再执行 x += 1”的代码,如何解释?
global 与 nonlocal 分别修改哪个作用域的名称绑定?
追问 如何用简单嵌套函数验证,为什么不应把它们作为共享状态的默认方案?
普通 if 或 for 代码块是否建立独立的局部作用域?
追问 变量只在某个分支中赋值时,后续读取可能出现什么问题?
Python 3 的列表推导式变量与普通 for 循环变量有什么差异?
追问 使用同名变量时,如何验证外部名称是否改变?
如何减少模块全局可变状态给测试和复用带来的问题?
追问 显式传参、返回结果与配置对象分别怎样帮助管理依赖?
多个函数共同修改同一份字典,如何追查错误来源?
追问 修改前后快照、调用路径、副作用约定和独立副本如何使用?
函数递归调用需要满足什么基本条件?
追问 终止条件与问题规模缩小如何验证?输入很深时为什么可能更适合循环?
如何组织“校验 → 转换 → 计算 → 展示”的函数协作?
追问 哪个环节负责提示用户,哪个环节抛出异常?如何避免计算函数依赖终端输入?