64、Python 作用域与变量使用的深度解析

Python 作用域与变量使用的深度解析

1. Python 2.x 中对布尔值的特殊操作

在 Python 2.x 里, True False 并非保留字,只是内置作用域里的变量。所以,我们能够借助 True = False 这样的语句来给它们赋值。执行这样的命令,仅仅会改变该语句所在作用域里 True 的含义,其他作用域依旧会从内置作用域里找到其原始名称。

还有个更有趣的操作,在 Python 2.x 中输入 __builtin__.True = False ,这会让整个 Python 进程里的 True 都变成 False 。这是因为 Python 只有一个内置作用域,供所有使用者共享。不过在 Python 3.x 里,无法执行这样的命令,因为 True False None 都被当作真正的保留字。在 Python 2.x 里执行此操作,会让 IDLE 环境进入奇怪状态,导致用户代码处理过程重新开始,所以不建议在家尝试。

这种技术在说明命名空间模型,以及工具开发者修改内置函数(如 open )以满足自身需求时很有用。重新赋值内置作用域里的函数名,能让进程中的每个模块都使用新的函数。但这么做时,可能得记住函数的原始版本,以便在自定义版本里调用它。

另外,像 PyChecker 和 PyLint 这类外部工具,会提醒我们避

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值