• python做中学(一)全局变量的用法


      一段时间没有使用python来写代码,就发现以前学习的很多语法都忘了。看来还是当初这方面的项目做的好不够多,没有系统性的运用和学习,导致了很多语法不能顺手拈来。在接下来的这个项目中,

    一定要把遇到的一些python知识不熟悉的地方还有遗忘的重新梳理一下,对python要达到灵活运用的境界,不能单纯是能敲代码,要达到学,做,教的三者合一。就是在做中学,学中做,做中教,教中学的

    境界。

      全局变量的作用域:

      一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量

      global关键字:

      为了解决函数内使用全局变量的问题,python增加了global关键字, 利用它的特性, 可以指定变量的作用域。

    global关键字的作用:声明变量var是全局的

         实例一:函数内赋值不能改变全局变量值:

     1 global val
     2 val = 10
     3 
     4 def test1():
     5         global val
     6         val = 5
     7         print('test1 global val:',val)
     8 
     9 def test2():
    10         val = 8
    11         print('test2 global val:',val)
    12 class Test():
    13         def __init__(self):
    14                 #global val
    15                 val = 5
    16                 #zoo()
    17                 #xy()
    18         def connect(self):
    19                 print("class in connect global val:",val)
    20                 if 5 == val:
    21                         print("global val is:",val)
    22 
    23 if __name__=="__main__":
    24         Test().connect()
    View Code

      运行结果:

    class in connect global val: 10

      可以看出,函数内赋值并不能改变全局变量的值,所以需要global关键字

      实例二:全局变量值改变必须要有global关键字:

      沈德符

    global val
    val = 10
    
    def test1():
            global val
            val = 5
            print('test1 global val:',val)
    
    def test2():
            val = 8
            print('test2 global val:',val)
    class Test():
            def __init__(self):
                    #global val
                    val = 5
                    test1()
                    test2()
            def connect(self):
                    print("class in connect global val:",val)
                    if 5 == val:
                            print("global val is:",val)
    
    if __name__=="__main__":
            Test().connect()
    View Code

       测试结果:

      test1 global val: 5
      test2 global val: 8
      class in connect global val: 5
      global val is: 5

    可以看出,全局变量的值改变,必须要有global关键字。不然就被当成了局部变量。这点一定要记好。

  • 相关阅读:
    四月书籍
    iOS 第三方登录之 QQ登录
    百度面试经验之谈 ----------转
    OC浅析一
    书目列表
    UIStroryboard分类
    ios基础笔记(一)
    IOS笔记-代码块(微博项目)-1.0
    IOS控件内容 对齐方式
    android同一个TextView设置不同颜色字体
  • 原文地址:https://www.cnblogs.com/dylancao/p/11205924.html
Copyright © 2020-2023  润新知