python学习笔记4:变量作用域
变量作用域
- 变量由作用范围限制
- 分类:按照作用域分类
- 全局(global): 在函数外部定义
- 局部(local):在函数内部定义
- 变量的作用范围:
- 全局变量:在整个全局范围都有效
- 全局变量在局部可以使用(即函数内部可以访问函数外部定义的变量)使用方法: global
- 局部变量在局部范围可以使用
- 局部变量在全局范围无法使用
- LEGB原则
- L(Local)局部作用域
- E(Enclosing function locale)外部嵌套函数作用域
- G(Global module)函数定义所在模块作用域
- B(Buildin): python内置模块的作用域
# 认为a1是全局的
a1 = 100
def fun():
global a1
a1 = 300
print(a1)
print("I am in fun")
# a2的作用范围是fun
a2 = 99
print(a2)
print(a1)
fun()
- 可以通过内建函数:globals()和locals()显示出局部变量和全局变量
eval()函数
- 把一个字符串当成一个表达式来执行, 返回表达式执行后的结果
-
语法:
eval(string_code, globals=None, locals=None)
exec()函数
- 跟eval功能类似, 但是,不返回结果
-
语法:
exec(string_code, globals=None, locals=None)
x = 100
y = 200
z1 = x + y
z2 = eval("x+y")
print(z1)
print(z2)
c =eval("print(x,y)")