zoukankan      html  css  js  c++  java
  • python课堂整理10---局部变量与全局变量

    一、局部变量与全局变量

    1. 没有缩进,顶头写的变量为全局变量

    2. 在子程序里定义的变量为局部变量

    3. 只有函数能把变量私有化

    name = 'lhf'  #全局变量
    def change_name():
        name = '大帅比'  #局部变量  只在这一段函数里生效
        print(name)      #先从当前作用域找name,找不到再往外层找
    
    change_name()
    print(name)
    

    二、修改全局变量

    1.  global 总是把最外层的全局变量拿来用

    NAME = 'lhf'
    def change_name():
        global NAME   #声明全局变量,把最外层的全局变量NAME 拿来用
        NAME = "dabai"  #修改全局变量
        print(NAME)
    print(NAME)
    change_name()
    print(NAME)

    2.  如果函数内部变量前无 global 关键字,优先读取局部变量,无局部变量再读取全局变量

    对于可变变量,可以对内部元素进行操作,但无法对变量本身重新赋值 name = ' fff '

    - 有声明局部变量

    NAME = [1, 2]
    def test():
        NAME = '自己'   #又新定义了一个局部变量
        print('我爱', NAME)
    test()
    print(NAME)
    

    - 无声明局部变量

    NAME = [1, 2]
    def test():
        NAME.append('你')  #对可变的全局变量进行内部修改
        print('我爱', NAME[2])
    test()
    print(NAME)
    

    -  有global 且声明了局部变量

    NAME = [1, 2]
    def test():
        global NAME
        NAME = '自己'
        print('我爱',NAME)
    test()
    print(NAME)
    

    错误示例:函数内既有局部变量,又有全局变量,名字重复,所以调用失败

    NAME = [1, 2]
    def test():
        NAME = '自己'
        global NAME
        print('我爱',NAME)
    test()
    print(NAME)
    

    所以 我们把全局变量的变量名用大写  局部变量的变量名用小写

    三、有函数的程序执行顺序

    python 的代码从上往下执行,但遇到函数,并不执行,而是只编译,调用函数时才回去执行。

    name = '大白'
    
    def cuoai():
        name = 'liu'
        def pianai():
            global name
            name = 'wen'
        pianai()
        print(name)
    print(name)
    cuoai()
    print(name)
    

    四、nonlocal  指代上一级变量,跟global 用法一样

    name = '大白'
    
    def cuoai():
        name = 'liu'
        def pianai():
            nonlocal name
            name = 'wen'
        pianai()
        print(name)
    print(name)
    cuoai()
    print(name)
    

    一个奋斗中的产品小白
  • 相关阅读:
    HackerRank
    HackerRank
    LeetCode "Contains Duplicate II"
    iOS 多控制器之间的跳转和数据存储
    addChildViewController属性介绍
    iOS之浅谈纯代码控制UIViewController视图控制器跳转界面的几种方法
    iOS系统的一些单例类 获取及全局应用全局样式的设置的获取
    【iOS开发】---- 强大的UI修改工具 UIAppearance-有图片效果
    iOS UIAppearance使用详解-01没有图片效果
    设置控件全局显示样式appearance proxy
  • 原文地址:https://www.cnblogs.com/dabai123/p/11031342.html
Copyright © 2011-2022 走看看