精华内容
下载资源
问答
  • 这篇文章主要为大家详细介绍了python 局部变量全局变量功能实例,具有一定的参考价值,可以用来参考一下。对详解python 局部变量全局变量感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!本文将详细...

    这篇文章主要为大家详细介绍了python 局部变量与全局变量功能实例,具有一定的参考价值,可以用来参考一下。

    对详解python 局部变量与全局变量感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!

    本文将详细分析python的全局变量与局部变量,学过php的人都知道,php里面的全局变量是无法在function里面去使用的,只有超全局变量才可以,那么python会怎么处理全局变量与局部变量呢?下面我们来看一下:

    其实python里面的全局变量,一般跟c语言里面是一样的

    # @param 详解python 局部变量与全局变量

    # @author 512笔记|www.512pic.com

    language = 'python'

    def foo1():

    language = 'hello' # 这里是局部变量

    print(language ) # 打出hello,并且不会影响全局变量language (全局那个bar仍然是'python')

    def foo2():

    print(language ) # 打出python # 因为没有声明局部变量所以python会搜索全局的language ,这个bar是全局的

    def foo3():

    global language # 告诉python下面的bar是全局的

    language = 'hello' # 这里是全局变量

    print(language) # 打出hello,全局的language 已经改为hello不再是python了

    #再打印一下language 看一下

    print(language)#打印出hello,因为在foo3里全局变量已经被改变了

    # End www.512 pic.com

    这也说明使用这种方式可以更改python的全局变量

    但是这与php里面不同:

    $name = 'php';

    function foo1{

    echo $name;

    }

    foo1 //将会得到一条警告:name变量不存在

    // End www.512 pic.com

    所以各位同学在做python开发时一定要注意区分

    注:关于python 局部变量与全局变量功能实例的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

    关键词:局部变量,全局变量

    您可能感兴趣的文章

    展开全文
  • 主要介绍了Python局部变量全局变量区别原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 四.Python 局部变量全局变量的区别 五.重点总结 六.猜你喜欢 一.前言 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 在 Python 开发中,变量也是有生命周期的,一旦周期结束,程序会...

    目录

    一.前言

    零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

    Python 开发中,变量也是有生命周期的,一旦周期结束,程序会自动清理暂用的空间,释放内存,变量分为两者,一种是局部变量,一种是全局变量,两者具体有什么区别呢……

    二.Python 局部变量

    一般而言在函数内部或者类中声明的变量默认都是局部变量。一旦函数结束,变量的生命周期也会结束,占用的空间会被自动释放。

    def func1():
        # 在函数内部定义的变量默认都是局部变量
        a = 1
        print(a)
        # 函数结束,局部变量a的生命周期结束
    
    # 由于a是局部变量,并且a的生命周期已经结束,外部再次调用局部变量a,程序会产生异常,崩溃
    print(a)
    

    程序报错:NameError: name ‘a’ is not defined ,原因:函数内部定义的局部变量只能在函数内部使用。

    三.Python 全局变量

    全局变量和局部变量相反,在函数外部或者类外部声明的变量默认为全局变量。全局变量的生命周期直到程序结束才会结束,比局部变量生命周期更长。

    # !usr/bin/env python
    # !usr/bin/env python
    # -*- coding:utf-8 _*-
    """
    @Author:猿说编程
    @Blog(个人博客地址): www.codersrc.com
    @File:python局部变量和全局变量.py
    @Time:2021/3/24 00:37
    @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
    
    """
    
    a = 2
    def func1():
        print(a)
        # 函数结束,局部变量的生命周期结束
        # 全局变量直到程序结束,生命周期才结束
    
    func1()
    # 输出全局变量a
    print(a)
    
    '''
    输出结果:
    2
    2
    
    '''
    

    四.Python 局部变量和全局变量的区别

    1.全局变量的生命周期是直到程序结束,而局部变量生命周期是函数结束;

    2.如果需要在函数内部修改全局变量的值,需要在函数内部为该全局变量前面加上 global 关键字, 否则该变量默认为函数内部定义的局部变量,示例代码如下:

    # !usr/bin/env python
    # !usr/bin/env python
    # -*- coding:utf-8 _*-
    """
    @Author:猿说编程
    @Blog(个人博客地址): www.codersrc.com
    @File:python局部变量和全局变量.py
    @Time:2021/3/24 00:37
    @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
    
    """
    
    # 在函数内部定义的变量默认都是局部变量
    a = 2
    def func1():
        # global a # 声明 a 是全局变量,在该函数内部对a的操作就是对全局变量a的操作
        a = 1      # 如果没有上一行代码,默认a就是函数内部的局部变量,函数结束,生命周期结束
        print(a)
        # 函数结束,局部变量的生命周期结束
    
    
    func1()
    # 输出全局变量a
    print(a)
    
    '''
    输出结果:
    1
    2
    
    '''
    

    是不上觉得很奇怪:为什么最后一个值是 2 ,应该是 1 才对?

    因为没有第 17 行代码的话,默认 a 只是函数内部的一个普通局部变量,所以函数内部的 print 函数输出到控制台是 1 ;函数结束,函数内部的局部变量 a 值生命周期结束,执行 fun1 函数之后的 print 函数输出的是全局变量 a 的值 2 .

    也就是说函数内部对 a 值得修改并没有成功,只有在函数内部,为全局变量加上关键字 global 声明为全局变量,才能修改成功,取消第 17 行得注释,控制台输出:

    1
    1
    

    五.重点总结

    • 1.注意局部变量和全局变量的生命周期;
    • 2.如果想在函数内部修改全局变量的值,需要加上关键字 global ;

    六.猜你喜欢

    1. Python 简介
    2. Python Pycharm Anacanda 区别
    3. Python2.x 和 Python3.x,如何选择?
    4. Python 配置环境
    5. Python Hello World 入门
    6. Python 代码注释
    7. Python 中文编码
    8. Anaconda 是什么?Anconda 下载安装教程
    9. Pycharm 提示:this license **** has been cancelled
    10. Pycharm 设置开发模板/字体大小/背景颜色
    11. Python 列表 list
    12. Python 元组 tuple
    13. Python 字典 dict

    未经允许不得转载:猿说编程 » Python 局部变量和全局变量

    展开全文
  • python 局部变量 vs 全局变量,global 修改全局变量 局部变量 以温度为栗,假设目前获取温度为33摄氏度,然后将该温度打印出来 #局部变量 def get_temp(): temp = 33 return temp def print_temp(): print('温度...

    #每天一点点#
    python 局部变量 vs 全局变量,global 修改全局变量
    局部变量
    以温度为栗,假设目前获取温度为33摄氏度,然后将该温度打印出来

    #局部变量
    def get_temp():
        temp = 33
        return temp
    def print_temp():
        print('温度是:%d'%temp)
    
    result = get_temp() 
    #如果一个函数有返回值,但是没有在调用函数之前,用个变量保存的话,那么,没有任何意义
    print_temp(result)   
    

    输出结果 →→→→→print_temp() takes 0 positional arguments but 1 was given

    全局变量
    定义一个全局变量 temp

    temp = 0   #定义一个全局变量
    
    def get_temp():
        temp = 33 
        '''
    如果temp这个变量已经在全局变量的位置定义了,
    后边想在任何一个函数中对这个全局变量进行修改的话,
    仅仅是一个temp=值,还不够,
    此时temp这个变量是局部变量,仅仅是和全局变量的名字相同而已
    '''
    def print_temp():
        print('温度是:%d'%temp)
    get_temp()
    print_temp()
    

    输出结果 →→→→→ 温度是:0
    为什么不是33??不是在get_temp中将温度修改为33了吗?
    为什么打印出来还是0度呢?

    global 修改全局变量呢

    #global 修改全局变量
    temp = 0
    def get_temp():
        global temp   # global修改全局变量
        temp = 33
    def print_temp():
        print('温度是:%d'%temp)    
    get_temp()
    print_temp()
    

    输出结果 →→→→→ 温度是:33

    展开全文
  • Python 局部变量全局变量,非局部变量Python 三种常见的变量,它们与变量作用域息息相关。局部变量一般位于函数内的变量为局部变量,它的作用域仅在函数体内,在函数体外无效:d...

    Python 局部变量,全局变量,非局部变量是 Python 三种常见的变量,它们与变量作用域息息相关。

    局部变量

    一般位于函数内的变量为局部变量,它的作用域仅在函数体内,在函数体外无效:

    def foo():
        x = 10
        print(f'x equals {x}' )
    
    foo() # x equals 10
    print(x) # error: 'x' is not defined
    

    类似于变量x为局部变量

    全局变量

    在一个模块中,凡是不在函数体内的变量都是全局变量:

    x = "I'm global variable"
    def foo():
        x = 10
        print(f'x equals {x}' )
    
    foo() 
    print(x) 
    

    打印结果:

    x equals 10
    I'm global variable
    

    细心的朋友会注意到在函数foo内的变量x打印结果为10,而不是 I'm global variable.

    这里面引出一个重要的知识:Python解释器在寻找x时,优先从foo函数体内,也就是局部中寻找,如果找不到,再从全局找。做如下验证:

    x = "I'm global variable"
    def foo():
        print(f'x equals {x}' )
    
    foo() 
    print(x)  # 打印结果为:I'm global variable
    

    因为在局部作用域foo内找不到x,所以往上全局找找到x.

    非局部变量

    Python解释器起初版本是没有这类变量的,那么后来为什么要添加上这类变量的呢?我们看下面这种场景:

    def foo():
        x = 0
        def wrap():
            x += 1
            print(f'x equals {x}')
        for i in range(5):
            wrap()
    
    foo() 
    

    执行函数foo后,在嵌套的函数wrap中抛出如下异常:

    local variable 'x' referenced before assignment
    

    意思是局部变量x在使用前未被赋值

    这句话本身不难理解,但是问题在于x不是已经在foo函数内已经被赋值了吗,为什么还有上面提示呢?

    原因在于:函数内的变量一旦被修改,就会变为局部变量,所以x第一次就出现在等号右侧自然就有问题。

    换句话说,如果在wrap内仅仅是读取x,就不会有问题,x被解释为全局变量:

    def foo():
        x = 0
        def wrap():
            print(f'x equals {x}')
        for i in range(5):
            wrap()
    
    foo() 
    

    所以,解释器为了解决以上问题,引入了nonlocal关键字,显示的声明x不是局部变量,所以就往外寻找x,然后在foo内被找到:

    def foo():
        x = 0
        def wrap():
            nonlocal x
            x += 1
            print(f'x equals {x}')
        for i in range(5):
            wrap()
    
    foo() 
    

    打印结果:

    x equals 1
    x equals 2
    x equals 3
    x equals 4
    x equals 5
    

    值得注意,nonlocal型变量一般用于函数嵌套中,而自定义的装饰器又会用到嵌套函数,所以nonlocal的价值就体现出来了。

    以上就是Python常见的三种变量:局部变量,全局变量,非局部变量的基本介绍。

    原创不易,欢迎点赞支持

    展开全文
  • python 局部变量变成全局变量

    千次阅读 2020-04-07 15:15:08
    全局变量 = global + 局部变量
  • Python局部变量全局变量区别

    千次阅读 2018-05-29 15:31:52
    局部变量: 在函数内、在class的方法内(未加self修饰),这就是局部变量 2. 如何使用: 在def中,我们可以定义一个局部变量,该变量仅仅在函数体中有生存期,出了这个函数体,变量就不能使用了。 def fun(): ...
  • 1、函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义一个局部变量,不管全局域中有没有用到该变量名,函数中使用的将是局部变量,例如:   num = 100 def func(): num = 123 print(num) func()...
  • 学习Python时看到一篇介绍python局部变量全局变量的帖子讲的挺好,无奈转载比较费事,只好手写。   当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来...
  • Python局部变量全局变量

    千次阅读 2013-05-18 21:27:25
    Python中的局部全局全局变量主要体现在函数内的变量与函数外的变量。 局部与全局就是变量的作用域(作用范围)。 当你在函数内部定义变量的时候,它们与函数外...使用局部变量: #!/usr/bin/env python # File
  • Python局部变量全局变量、作用域、名称空间局部变量与全局变量函数调用变量函数调用自身函数内部的变量函数调用全局变量内部函数调用上层函数的变量作用域与命名空间Local(局部)Enclosed(嵌套)Global(全局)...
  • 本文将详细分析python全局变量与局部变量,学过php的人都知道,php里面的全局变量是无法在function里面去使用的,只有超全局变量才可以,那么python会怎么处理全局变量与局部变量呢?下面我们来看一下: 其实...
  • 局部变量 在def中, 我们可以定义一个局部变量, 这个变量a只能在这个功能fun中有效, 出了这个功能,a这个变量就不是那个局部的a. def fun(): a = 10 print(a) return a+100 print(fun()) """ 10 110 """ 下面...
  • 导语   在子程序定义的变量被称为是局部变量,在程序一开始定义的变量被称为是全局...当全局变量与局部变量出现重名的时候,在局部变量的范围内是局部变量起作用,而在其他地方使用会是全局变量起作用。 ...
  • 变量的作用域(全局变量和局部变量) 变量起作用的范围称为变量的作用域,不同作用域内同名变量之间互不影响。变量分为:全局变量和局部变量 全局变量 在函数和类定义之外声明的变量。作用域为定义的模块,从定义...
  • 理解:什么是局部变量,什么是全局变量 局部变量的定义:在局部范围内的变量;例子:天气预报:西安2019年7月19号今天阴天,在全国范围内,今天的天气是阴天。(对于西安今天是阴天,但是明天就是晴天。只保证今天是...
  • 主要介绍了python局部变量全局变量,需要的朋友可以参考下
  • 局部变量的查询和访问速度比全局变量快,优先考虑,尤其是在循环的时候。 在特别强调效率的地方或者循环次数较多的地方,可以通过将全局变量转为局部变量提高运行速度。 例子: import math, time def one(): ...
  • Python 局部变量转为全局变量

    千次阅读 2019-07-22 16:31:00
    转载于:https://www.cnblogs.com/fanweisheng/p/11226684.html
  • 本文将详细分析python全局变量与局部变量,学过php的人都知道,php里面的全局变量是无法在function里面去使用的,只有超全局变量才可以,那么python会怎么处理全局变量与局部变量呢?下面我们来看一下:其实python...
  • 当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称...使用局部变量 例7.3 使用局部变量 #!/usr/bin/python # Filename: func_local.py def func(x):  print
  • num = 100 def func(): global num num += 100 print(num) func()
  • 主要介绍了Python3.5局部变量全局变量作用域,结合实例形式分析了Python3.5局部变量全局变量的定义、作用域及相关操作注意事项,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,386
精华内容 22,954
关键字:

python局部变量转全局

python 订阅