全局变量与局部变量
全局变量:在程序的一开始定义的变量称为全局变量,作用域是整个程序,
顶头写的变量,本Py文件中任何时候都可以调用
局部变量:在子程序中定义的变量称为局部变量,作用域是定义该变量的子程序
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用,在其它地方全部变量起作用
注:全局变量大写,局部变量小写
例:
name='1hf' def change(): name='蜡笔小新' print('change',name)
change()
name='1hf'
def change():
global name
name='蜡笔小新'
print('change',name)
change()
print(name)
输出结果时由内像外找,print(name)时输出1hf ,在局部的内部加一个 关键字global name,结果输出“蜡笔小新”
global语句:在函数内增加一个global声明,可以使函数内的X变成全局变量。global也可以允许我们修改函数之外的模块的全局变量。
# 如果函数的内容无global关键字,优先读取局部变量,只能读取全局变量,无法对全局变量进行赋值,但是对于可变对象,可以对内部元素进行操作
# 如果函数中又global关键字,变量本质上就是全局那个变量,可读取可赋值。
# 当有global关键字时:
# 有声明局部变量: NAME='水果' def fruit(): global NAME name=('香蕉') print('我想吃',name) fruit()
# 无声明局部变量: NAME={'水果'} def fruit(): global NAME NAME={'水果'} NAME.append('水果') print('我想吃',name) fruit() # 当没有global关键字时:
# 有声明局部变量: NAME='水果' def fruit(): name=('香蕉') print('我想吃',name) fruit()
# 没有声明局部变量: NAME='水果' def fruit(): NAME.append('xxoo') print('我想吃',NAME) fruit()
函数嵌套:
方式01: NAME='方向direction' def east(): name01='东' print(name01) def west(): name02='西' print(name02) def south(): name03='南' print(name03) def north(): name04='北' print(name04) north() south() west() east() 方式02:
name='方向direction' def east(): name='东' def west(): nonlocal name name='西' west() print(name) print(name) east() print(name)
# nonlocal ,指定上一级变量
# global,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?