python基础--函数学习

1.变量作用域

变量作用域决定了哪一部分的程序可以访问哪一个变量,python的变量作用域可以分为四种:

局部作用域、闭包函数外的函数中、全局作用域、内建作用域。程序会先在局部作用域中寻找变量,没找到的话,会去闭包函数外的函数中找,如果还是没找到的话,会去全局作用域找,如果还没找到,会去内建作用域寻找。

各作用域如下面代码所示

x = int(2.9)  # 内建作用域

g_count = 0  # 全局作用域


def outer():
    o_count = 1  # 闭包函数外的函数中

    def inner():
        i_count = 2  # 局部作用域

2.全局变量与局部变量

全局变量:定义在函数外的变量,就是全局变量

局部变量:定义在函数内的变量,就是局部变量

total = 0  # 这是一个全局变量

# 可写函数说明
def sum(arg1, arg2):
    # 返回2个参数的和."
    total = arg1 + arg2  # total在这里是局部变量.
    print("函数内是局部变量 : ", total)
    return total


# 调用sum函数
sum(10, 20)
print("函数外是全局变量 : ", total)

3.global与nonlocal关键字

global用于局部作用域修改全局作用域变量,如下代码

num = 1
def fun1():
    global num  # 需要使用 global 关键字声明
    print(num) 
    num = 123
    print(num)
fun1()
print(num)

nonlocal用于局部作用域修改外层非全局作用域变量,如下代码

def outer():
    num = 10
    def inner():
        nonlocal num   # nonlocal关键字声明
        num = 100
        print(num)
    inner()
    print(num)
outer()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值