zoukankan      html  css  js  c++  java
  • 全局变量与局部变量

    1.全局变量:无缩进的变量,在整个代码中任意位置都可以调用

    2.局部变量:在子程序中设置的有缩进的变量,只能在子程序中调用

    3.局部变量与全局变量重名时,互相不影响,局部变量总是先从自己等层次的代码块中寻找,找不到在从外面一层找

    4.一般全局变量设置成大写形式,而局部变量设置成小写,便于区分

    5.例一:

    1 def test():
    2     print(name)
    3 test()  #输出‘alex’
    name = 'alex'
    def test():
    name = 'pig'
    print(name)
    test() #输出pig

    6.在子程序中想修改全局变量时,可引入 global 

    name = 'alex'
    def test():
        global name
        name = 'pig'
        print(name)
    test() #输出pig

    7.函数嵌套

    name = 'alex'
    def test():
    name = 'pig'
    def test_1():
    name_1 = 'cat'
    print(name_1)
    def test_2():
    name_2 = 'dog'
    print(name_2)
    test_2()

    print(name)
    test_1()
    test() #依次输出pig,cat,dog

    8.前向引用 :函数即变量

    函数之间互相引用时,不在乎函数的顺序,因为调用时均在内存里,但是由于执行命令是有顺序,执行的命令应在所涉及的所有函数之后,否则读取不到,会报错。如:

     1 def test():
     2     name = 'Mike'
     3     print(name)
     4     test_1()
     5 def test_1():
     6     name = 'John'
     7     print(name)
     8 test()
     9 def test_1():
    10     name = 'John'
    11     print(name)
    12 def test():
    13     name = 'Mike'
    14     print(name)
    15     test_1()
    16 test()
    17 def test():
    18     name = 'Mike'
    19     print(name)
    20     test_1()
    21 test()
    22 def test_1():
    23     name = 'John'
    24     print(name) #会报错,上面两个输出一样

    9.改变上一级变量,使用  nonlocal

    def test():
        name = 'John'
        print(name)
        def test_1():
            nonlocal name
            name = 'Mary'
            print(name)
        test_1()
    test()  #输出John,Mary

    10.全局变量不管在哪个子程序中始终可以修改(global形式)

  • 相关阅读:
    jsp文件上传、下载
    Hadoop 集群常见错误
    大学手机课表系统前景和范围文档
    psp工具软件前景与范围文档
    PSP系统项目前景与范围文档
    社团管理系统项目前景与范围文档
    PSP结构化分析
    PSP(个人软件开发过程)需求分析
    有关高校科研系统相关信息分析
    QQ应用前景与范围文档
  • 原文地址:https://www.cnblogs.com/lzjdsg/p/10146480.html
Copyright © 2011-2022 走看看