python学习日记(6/21)

本文详细探讨了Python中的变量作用域,通过示例解析了全局变量与局部变量的区别,以及如何使用`global`关键字将局部变量转换为全局变量。同时,介绍了Python的作用域链以及变量查找规则,帮助读者深入理解Python中的变量管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、变量作用域

例一:

c = 50  #全局变量

def add(x,y):
    c = x + y  #局部变量
    print(c)

add(1,1)
print(c) 

输出:

2
50

全局变量c不会影响局部变量c的作用域

例二:

c = 50  #全局变量

def add(x,y):
    c = x + y  #局部变量
    print(c)

add(1,1)
print(c) 

def demo():
    print(c)



>>>
2
50
50

函数demo中没有定义局部变量c,全局变量作用在了函数demo中

例三:

c = 50  #全局变量

def demo1():
    c = 50
    for i in range(0,9):
        c += 1
        a = 'a'
    print(c)
    print(a)

demo1()


>>>
59
a

python没有块作用域,函数有作用域

例四:作用域链

c = 1

def func1():
    c = 2
    def func2():
        c = 3
        print(c)
    func2()

func1()

输出结果3。受c = 3的作用域影响。

若只屏蔽c = 3,输出结果为2。向上一级寻找

若再屏蔽c = 2,输出结果为1。再向上一级寻找

二、global关键字

global关键字:将局部变量转为全局变量,使得函数外能够调用函数内的变量

例1:

def demo2():
    global c
    c = 2

demo2()  #要先调用函数
print(c)


>>>
2

c也可以被import入其他模块

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值