在这段代码,为什么a而b没有得到他们的各块的两端被破坏?
flag = True
if flag:
a = 1
for i in range(2):
b = 2
print(a, b)
Run Code Online (Sandbox Code Playgroud)
相反,此代码打印1 2.为什么Python允许这个?我什么时候可以依赖这种行为?
阅读Python的范围规则.简而言之,范围从一个新模块开始:函数,方法,类等.仅仅控制流语句(例如if和for)不会启动新范围.变量的范围是从其第一个定义到该范围的结尾.
由于此示例只有一个范围,因此每个变量从第一次分配到文件末尾都很好.
这足以解决问题吗?
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |