写在开头
分享、记录两个有意思的案例,平时碰到时总容易误理解。
一、连续等式判断
猜猜这个表达式,它的返回值是True 还是False?
print(True == False == False)
# ?
二、函数内部变量作用域的变更
1、 对外部变量不进行运算,直接访问
函数内部,不对外部变量进行运算时,可以直接访问
x = 12
def f1():
# 在这里执行时, x会被当做内部变量
x = 3
print(x)
f1()
# 输出:3
2、 直接对外部变量进行操作运算
函数内部,对外部变量作操作运算时,访问会报错
y = 12
def f2():
y += 1
print(y)
f2()
#错误信息:UnboundLocalError: local variable 'x' referenced before assignment
3、新增global声明,再操作
函数内部新增global声明后,可以对全局变量进行运算
z = 12
def f3():
global z
z += 1
print(z)
f3()
# 13