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

    函数内部没有global关键字:
    ①有声明局部变量:用函数内部自己的局部变量
    ②无声明局部变量:用函数外部的全局变量,虽然无法进行重新赋值,但对于可变类型的数据可进行内部数据的操作

    函数内部有global关键字:
    global声明全局变量时位于函数最前面

    函数内部有nonlocal关键字:
    nonlocal指定上一级变量

    全局变量用全大写,局部变量用全小写

     1 name = 'chen'
     2 def test():
     3     global name  #指向全局变量
     4     name = 'li'
     5     print(name)
     6 test()
     7 print(name)
     8 # li
     9 # li
    10 
    11 
    12 name  = 'chen'
    13 def change():
    14     name = 'liu'
    15     def change1():
    16         nonlocal name   #指定上一级变量
    17         name  = 'li'
    18         print(name)
    19     change1()
    20     print(name)
    21 change()
    22 print(name)
    23 # li
    24 # li
    25 # chen
    26 
    27 
    28 name='alex'
    29 def foo():
    30     name='lhf'
    31     def bar():
    32         name='wupeiqi'
    33         def tt():
    34             print(name)
    35         return tt
    36     return bar
    37 
    38 func=foo()  #bar地址作为返回值传给func===>func = bar
    39 print(func)
    40 func()()    #===>bar()()===>tt地址作为返回值传出来===>tt()==>print(name)
    41 # <function foo.<locals>.bar at 0x0000001C74519BF8>
    42 # wupeiqi
    43 
    44 name='alex'
    45 def foo():
    46     name='lhf'
    47     def bar():
    48         print(name)
    49     return bar
    50 
    51 func=foo()   #将bar地址作为返回值传给func====>func = bar
    52 print(func)
    53 func()       #bar()====>print(name)
    54 # <function foo.<locals>.bar at 0x0000001C74519B70>
    55 # lhf
    View Code
  • 相关阅读:
    eslint 的 env 配置是干嘛使的?
    cookie httpOnly 打勾
    如何定制 antd 的样式(theme)
    剑指 Offer 66. 构建乘积数组
    剑指 Offer 65. 不用加减乘除做加法
    剑指 Offer 62. 圆圈中最后剩下的数字
    剑指 Offer 61. 扑克牌中的顺子
    剑指 Offer 59
    剑指 Offer 58
    剑指 Offer 58
  • 原文地址:https://www.cnblogs.com/SakuraYuanYuan/p/10308298.html
Copyright © 2011-2022 走看看