当前位置:首页>python>Python-14基础语法-变量作用域(体系文章)

Python-14基础语法-变量作用域(体系文章)

  • 2026-10-02 19:43:18
Python-14基础语法-变量作用域(体系文章)

变量作用域

   变量作用域就是你的变量到底“活”在哪个区域,哪里能访问它,哪里不能。大家知道你只能在你家里自由活动,不能随意进陌生人的家,变量也一样,有自己的“活动范围”,乱跑就会出问题!

一:全局变量-函数外面定义的变量

money = 10000  # 这是全局变量,下面的函数和其他地方都可以使用def living_room():    print(f"客厅里有{money}块钱")living_room()  # 输出:客厅里有10000块钱print(money)   # 输出:10000

二:局部变量-函数内部定义的变量,函数执行完毕释放变量所占空间

def bedroom():    money = 100  # 这是我的私房钱,属于局部变量    print(f"卧室里有{money}块钱")bedroom()  # 输出:卧室里有100块钱print(money)  # 超出变量的使用范围,报错!NameError: name 'money' is not defined

既有全局变量也有局部变量并且同名情况下会发生什么

money = 1000def steal():    money = 500  # 你以为在修改全局变量?这里用的不是全局变量,而是重新定义一个局部变量    print(f"偷偷拿了{money}")steal()          # 输出:偷偷拿了500print(money)     # 输出:1000(全局变量没变!)局部变量已经释放了只能是全局变量

假如函数内部想修改全局变量的值可以使用global关键字

def steal():    global money # 表示money是全局的变量money    money = 500  # 修改全局变量值    print(f"偷偷拿了{money}")steal()          # 输出:偷偷拿了500print(money)     # 输出:500

代码案例

def outer():  x = "outer"  def inner():    x = "inner"  # 这是新的局部变量,不是outer里的x    print("inner:", x) # 使用的是自己范围内的x  inner() # inner函数执行,函数里面的x释放了  print("outer:", x)  # 输出x的值为outer

假如想使用外部的x可以使用nonlocal关键词

def outer():    x = "outer"    def inner():        nonlocal x   #  nonlocal翻译"非局部的" 告诉Python:我要用上一层函数的x        x = "inner" #        print("inner:", x) # 输出inner: inner    inner()    print("outer:", x)  # 输出outer: innerouter()

龙哥出个题目给大家,评论区可以写出你的答案和分析过程

a = 1def outer():    a = 2    def inner():        global a        a = 3        print("inner:", a)     inner()    print("outer:", a) outer()print("global:", a) 

记得管好你的变量,别让它们搞事情!

💡 干货不容错过!

如果你觉得这篇文章对你有帮助,欢迎【分享】到朋友圈,让更多志同道合的小伙伴一起加入AI大模型的开发之旅!

最新文章

随机文章