全局变量与局部变量

全局变量:在程序的一开始定义的变量称为全局变量,作用域是整个程序,

顶头写的变量,本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,
复制代码

 

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