名称空间: 用来存放名字(变量, 函数名, 类名, 引入的模块名)的
1. 全局名称空间: 我们在py文件中自己写的变量, 函数.....
2. 内置名称空间: 我们python解释器提供好的一些内置内容(print, input....) 3. 局部名称空间: 在我们执行函数的时候.会产生一个局部名称空间. 放的是: 函数内部的内容(变量, 函数,类...)名称空间可能会有无数个, 局部名称空间而言. 相对是独立的.一般互不干扰
作用域:
1. 全局作用域: 内置+全局 2. 局部作用域: 局部globals() 查看全局作用域
locals() 查看当前作用域# a = 10## lst = [1,2,3,4]## # 内置函数# print("你好啊,我叫赛利亚")## def chi():# a = 10# b = 20### # 如果不调用chi() chi中的a和b都不会创建# # 如果调用了chi() 会创建a,b# chi()# def chi():# a = 10# print(a)## chi()# print(a) # 报错# def print(b):# pass## a = 10# def chi():# print(a)## chi()# 从全局去找局部 -> 找不到# 局部去找全局 -> 可以找到# 怎么查看全局和局部中的内容# a = 10# b = 20## def 今天又是星期五():# pass## # 查看全局作用域中的内容# print(globals()) # globals 全局作用域: 内置+全局名称空间# '''# {'__name__': '__main__', '__doc__': None, '__package__': None,# '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000000000265C080>,# '__spec__': None, '__annotations__': {},# '__builtins__':, => print, input open# '__file__': 'D:/python_workspace_s18/day10 函数的进阶/04 名称空间和作用域.py',# '__cached__': None,# # 自己写的. 全局# 'a': 10, 'b': 20, '今天又是星期五': }# '''#def chi(): a = 20 b = 30 print(locals()) # 查看当前作用域中的内容 print(globals()) # alex,老男孩儿, 武sir, 全局作用域中的内容chi()# print(locals()) # 全局# print(globals()) # 全局