名称空间

"""
    名称空间
        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)

 

posted on 2019-01-14 15:48  小胖子方法  阅读(200)  评论(0编辑  收藏  举报

导航