局部变量与全局变量

在 Python 中,变量根据位置的不同,其所影响的范围也不同。比如自家的卫生间只能自家人用,公共卫生间是所有人都可以用。

含义:

局部变量:在函数里面定义的变量都是局部变量,只能在函数内部使用。

全局变量:在函数之外定义的变量,在任何函数之内都可以使用

注意:如果局部变量和全局变量重名了,就近原则,局部变量优先。

代码示例:

text = "小东西"

def test1():
    # 定义局部变量a
    a = 10  
    # 使用全局变量
    print(text)

def test2():
    # 使用全局变量
    print(text)


def test3():
    # 定义局部变量
    text = 16
    # 如果局部变量和全局变量重名,就近原则,局部变量优先
    print(text)

# 调用test1函数
test1()
# test1函数内的局部变量 a 无用
# 输出结果:小东西

# 调用test2函数
test2()
# 输出结果:小东西

test3()
# 输出结果:16
# 局部变量和全局变量重名,就近原则,局部变量优先

# 此处无法使用a
# print(a)

局部变量修改全局变量

1、局部变量和全局变量即使名字相同但是本质上是两个变量;

2、使用 global 关键字指定当前变量为全局变量。

代码示例:

text = "我的小宝贝"

def up_data():
    global text
    text = "爱老虎油!"

# 调用函数 
up_data()
print(text)
# 输出结果:爱老虎油!

全局变量的位置

一般在开发的时候,应该把代码中的全局变量定义在函数的上方,保证左右的变量都可以正常访问。

代码示例:

# 定义一个全局变量
num = 10
title = "lalal"

# 又定义了一个全局变量
name = "小计"

# 定义一个函数
def demo():
    print("%d"%num)
    print("%s"%title)
    print("%s"%name)

demo()

"""
输出结果:
10
lalal
小计

"""

结合赋值运算符的运用

代码示例:

a = [100]
def  test(num):
    num = num + num
    print(num)
test(a)
print(a)
'''
输出结果
函数内的num值 [100, 100]
全局变量a的值 [100]
'''


a = [100]
def  test(num):
    num += num
    print("函数内的num值",num)

# 将a的值当做参数传递
test(a)
print("全局变量a的值",a)

'''
输出结果
函数内的num值 [100, 100]
全局变量a的值 [100, 100]
'''

分析总结:

1、num += num :+= num 指向谁,就对谁进行修改,当 a 传递进来的时候, a 是可变类型[100],此时直接修改。

2、num = num +num :先执行等于号右边,得到的结果在内存中暂时保存,此时左边的局部变量 num 指向这个新的内存地址。

posted @   猪腩飞了天  阅读(349)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示