初学__Python——Python 变量的作用域

在Python中,不同的函数可以具有相同的参数名。在函数中已经声明过变量名,在函数外还可以继续使用。在脚本运行的过程中,其值并不相互影响。

def fun1(x):        # 声明一个函数
    a = [1]         # 定义一个名为 a 的列表
    a.append(x)
    print(a)


fun1(2)          # 调用函数,输出函数中列表的值

a = [2, 3, 4]    # 在函数外定义一个名为 a 的列表值
print(a)         # 输出函数中名为 a 的列表值

   注:函数调用结果和直接输出结果的值是不一样的

上述代码中,两个同名的列表之所以值不同,是因为它们处于不同的作用域里。在Python中,作用于可以分为内置作用域、全局作用域和局部作用域。

  • 内置作用域——是Python预先定义的

  • 全局作用域——是所编写的整个脚本

  • 局部作用域——是在某个函数内部范围

上述代码中,函数中的列表 a 处于局部作用域中。而函数外的列表 a 处于全局作用域内。局部作用域内变量的改变并不影响全局作用域内的变量,除非通过引用的形式传递参数。

在函数中使用函数外的变量,可以在变量名前使用 global 关键字,如下:

def fun( x ):         # 声明函数
    global a          # 使用 global 关键字声明全局变量
    return a + x


a = 5            # a 为全局变量,即 fun 函数中的 a
print(fun(3))    # 输出调用函数的值
a = 2            # 修改 a 的值
print(fun(3))    # 再次输出调用函数的值

两次输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值