zoukankan      html  css  js  c++  java
  • Python基础 全局变量与局部变量的区别??

    1.局部变量

    在 def 中, 我们可以定义一个局部变量, 这个变量 a 只能在这个功能 fun 中有效, 出了这个功能, a 这个变量就不是那个局部的 a.

    def fun():
        a = 10
        print(a)
        return a+90
    
    print(fun())

    下面这个例子就验证了如果在 fun 外面调用 a, 会报错, 这表明外面的这个 print(a) 不能找到那个局部的 a, 只有全局变量再能在外面被调用, 比如 MAX_LEN.

    MAX_LEN = 256
    def fun():
        a = 10
        return a+90
    
    print(MAX_LEN)
    print(a)
    
    #输出
    256
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-5-166881535953> in <module>
          5 
          6 print(MAX_LEN)
    ----> 7 print(a)
    
    NameError: name 'a' is not defined

    2.全局变量
    那如何在外部也能调用一个在局部里修改了的全局变量呢. 首先我们在外部定义一个全局变量 a=None, 然后再 fun() 中声明 这个 a 是来自外部的 a. 声明方式就是 global a. 然后对这个外部的 a 修改后, 修改的效果会被施加到外部的 a 上. 所以我们将能看到运行完 fun(), a 的值从 None 变成了 20.

    MAX_LEN = 256
    a = None   
    def fun():
        global a    #使用之前在全局里定义的 a
        a = 20      #现在的 a 是全局变量了
        return a+100
    
    print(MAX_LEN)
    print('past a:',a)
    print(fun())
    print('now a:',a)
    
    #输出
    256
    past a: None
    120
    now a: 20


    ————————————————
    版权声明:本文为CSDN博主「程旭员」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_37763870/article/details/105090011

    你有什么心态,就有什么样的人生。管不好自己的心态,注定你就是个弱者。
  • 相关阅读:
    【20171227】json
    【20171224】文件操作
    【20171225】编解码
    【20171226】urllib
    【20171226】requests
    【错误集】编解码
    Python 基础概念——单例设计模式
    Python 继承
    python面向对象概述
    Python基础_函数的递归
  • 原文地址:https://www.cnblogs.com/LQZ888/p/12575312.html
Copyright © 2011-2022 走看看