python基础语法5-2变量

    xiaoxiao2022-07-14  161

    变量

    变量的作用域(变量的有效范围)

    分类:

    全局变量:在函数内外都有效的变量就是全局变量(使用global关键字声明) 局部变量:仅仅在函数内部有效的变量就是局部变量 举个例子,就像做手术时候用的麻醉: 全身麻醉:相当于全局变量 局部麻醉:相当于局部变量
    全局变量(特征):
    globals() 获取当前位置的全部全局变量。 1.在函数外部可以正常访问 2.在函数内部也可以正常访问
    局部变量(特征):
    locals() 获取当前作用域的变量(在局部中,是获取locals()之前的所有变量) 1.在函数外部不可以访问 2.在函数内部可以访问
    将局部变量提升为全局变量:
    在函数内部使用global关键字可以将局部变量提升为全局变量。 def func(): global #变量1,变量2,... global #提升的全局变量是真正的全局变量 global num,num2 num2 = 2 num = 1 func() print(num) print(num2)
    真正的全局变量:
    使用global关键字对全局变量进行声明才可以在函数内部任意操作,否则在函数内部只能访问,而不能修改 num = 3 def func(): global num num = 2 print(num) func() print(num)
    变量作用域链:
    变量的有效范围可以向函数内部层层向下传递 如果其他的函数内部没有使用global,可以访问变量,无法修改 如果其他的函数中使用gloabl,可以进行任何操作 *nonlocal是在Python3.2之后引入的一个关键字,它是用在封装函数中的。 nonlocal 适用于在局部函数中的局部函数, 把内层的局部变量设置成上一个外层局部可用,但是还不是全局的。他与global可以混合使用,下面的代码示例可以分出global与nonlocal区别 def scope_test(): def do_local(): spam = "局部变量" #1 def do_nonlocal(): nonlocal spam #使用外层的spam变量 spam = "nonlocal 变量" #2 def do_global(): global spam spam = "global 变量" #3 spam = "test spam" do_local() print("本地分配后:", spam) do_nonlocal() print("nonlocal分配后:",spam) do_global() print("global分配后:",spam) scope_test() print("全局范围:",spam)

    输出的结果是:test sapm,nonlocal变量,nonlocal变量,global变量,你答对了吗

    最新回复(0)