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

    """
        名称空间
            namespace
            就是存储名字的内存区域
        名称空间的分类
            内置名称空间,存的是解释器自带的名称,例如print,len,其特点是在程序运行过程中一直有效
                特点:其特点是在程序运行过程中一直有效
                生命周期:随着解释器的启动而生效,随着解释器运行结束而失效
    
            全局名称空间
                只要是顶着最左边写的,没有任何缩进的,就在全局名称空间中
                特点:其特点是在程序运行过程中一直有效
                生命周期:随着py文件的执行而生效,随着py文件的执行结束而失效
                需要注意的是:在if 中 如果if 是顶着最左边的没有缩进的那么if里面的名字也属于全局
                同样的,while for with都是如此
    
            局部名称空间
                存的是函数内定义的名字,
                特点:仅在函数调用时临时有效
                生命周期:随着函数的调用而生效,随着函数的调用结束而失效
    
            名称空间的加载顺序
                内置 -- >  全局  -- > 局部
            名字的查找顺序
                局部 -- >  全局  -- > 内置
    
    
    """
    # print(len)
    # name = "bgon"
    # print(name)
    # if 1 == 1:
    #     age = 1 # 也是全局的
    #
    # print(age)
    #
    #
    # with open("2.名称空间.py",encoding="utf-8") as f:
    #     a = 100 # 也在全局名称空间
    # print(a)
    
    
    # def func1():
    #     a = 100
    #     print(a)
    #
    # func1()
    # print(a)
    #
    # a = 200
    # def func1():
    #     a = 100
    #     print(a)
    #
    # func1()
    
    # len = 200
    # def func1():
    #     len = 100
    #     def func2():
    #         # len = 300
    #         print(len)
    #     len = 1
    #     func2()
    # func1()
    
    name = "张三"
    # del name
    # print(name)
    
    # def f1():
    #     def f2():
    #         def f3():
    #           print(name)
  • 相关阅读:
    关于MySQL Server影响ASP.NET网站使用的问题:未能加载文件或程序集MySql.Web.v20
    关于DataGridViewComboBoxColumn的二三事
    我是如何准备高项的
    MyBatis接口式编程
    初识MyBatis之HelloWorld
    Java基础——值传递
    Java基础——接口和抽象类
    Java基础一
    POST和GET的区别
    Python浅拷贝和深拷贝
  • 原文地址:https://www.cnblogs.com/Hale-wang/p/10267230.html
Copyright © 2011-2022 走看看