python - 使用海象运算符的意外 Python 变量范围:= 赋值表达式
问题描述
我发现以下代码的变量范围非常出乎意料...(来自其他语言,其中scope_var
变量的范围仅存在于 IF 的范围内):
if scope_var := 'exists after IF':
pass
print(scope_var)
会打印什么?
解决方案
输出:存在于 IF 之后
所以变量scope_var
现在存在于 IF 语句之外/之后。
这对我来说很奇怪,所以我想我发布这个 Q/A 以供其他语言的其他人学习。(我在谷歌上搜索了很多文章,但没有找到像这个答案这样的答案,所以我希望这对像我这样的人有所帮助。)
...
显然它不仅仅是海象 := 赋值表达式。它也发生在常规 FOR 语句中:
for i in range(3):
pass
print(i)
输出:3
推荐阅读
- java - 无法将基于模块的 maven java 11 项目正确导入 Eclipse(使用模块信息文件)
- angular - 如何为我的 scully 插件应用配置?
- javascript - MSBuild 错误的声纳扫描仪:无法解析文件 [
l-debug.js] 在第 55623 行:意外的令牌( - json - 如何根据bash中的键从json中获取值
- react-native - React Native 测试框架 findBy 没有找到并且 waitFor 没有等待
- performance - 200K 行/秒 Clickhouse 的最大性能是什么?
- sql - 模式 SQL:动态日期参数
- javascript - 使购物车模态的标题与正文匹配的最佳方法?
- javascript - Discord.JS 嵌入:页脚中的用户头像
- jquery - 如何使工具提示与 jQuery 一起工作?- jQuery