zoukankan      html  css  js  c++  java
  • 命名空间

    1.作用域:变量或者函数的声明周期
      1.全局命名空间--> 我们直接在py文件中, 函数外声明的变量都属于全局命名空间
      2.局部命名空间--> 在函数中声明的变量会放在局部命名空间
      3.内置命名空间--> 存放python解释器为我们提供的名字, list, tuple, str, int这些都是内置命名空间
      # 最开始开辟一个自己的命名空间 -内置命名空间
      #加载顺序:内置=>全局=>局部
      #取值顺序: 局部==>全局==>内置
      globals() # 查看全局作用域中的内容
      locals() #查看当前作用域的内容

    2.global nonlocal 对于外层变量 如果没有相关关键字修饰的话 只能读 不能改变
      global a # 表示当前作用域使用的a是全局中的变量
      这种 改变是危险的 共享的改变是危险的
      还可以定义一个全局的a(强制的)
      nonlocal a # 找的是局部里面,离他最近的上层的那个变量
      直到找到为止

     1 # 7, 下面代码成立么?如果不成立为什么报错?怎么解决?
     2 # 7.1
     3 #a = 2
     4 # def wrapper():
     5 #     print(a)
     6 # wrapper()
     7 # 不报错 调用顺序是局部、全局、内置
     8 # 7.2
     9 # a = 2
    10 # def wrapper():
    11 #     global a
    12 #     a += 1
    13 #     print(a)
    14 #
    15 #
    16 # wrapper()
    17 # 这个报错 添加一个关键字 global,只能这个全局变量 不能改变
    18 # 要改变的话 需要加 关键字global
    19 # 7.3
    20 # def wrapper():
    21 #     a = 1
    22 #     def inner():
    23 #         nonlocal a
    24 #         print(a)
    25 # 
    26 #     inner()
    27 # wrapper()
    28 # 不报错 读这个变量是可以的
    29 # 7.4
    30 # def wrapper():
    31 #             a = 1
    32 #             def inner():
    33 #                 a += 1
    34 #                 print(a)
    35 #             inner()
    36 #     wrapper()
    View Code
  • 相关阅读:
    Bootstrap中的Dropdown悬停触发
    git常用命令整理
    ThinkPHP-项目模块分组后自定义类库文件放去哪?
    项目开发中常用的PHP实用代码算法
    1049. Counting Ones (30)
    1059. Prime Factors (25)
    1050. String Subtraction (20)
    观察者模式
    策略模式
    JVM剖析
  • 原文地址:https://www.cnblogs.com/d9e84208/p/10580690.html
Copyright © 2011-2022 走看看