08 函数基础2

''''''
'''
函数的嵌套定义

函数对象:
    函数的内存地址称之为函数对象
函数的名称空间:
    全局:
        所有顶着头写的变量、函数...都称之为"全局名称空间"
    局部:
        在函数内部定义的,都称之为"局部名称空间"
    内置:
        python解释器自带的都称之为"内置名称空间"
    
    名称空间加载顺序:
        内置 ---> 全局 ---> 局部
    名称空间查找顺序:
        局部 ---> 全局 ---> 内置
'''
#函数的嵌套定义
def func1():

    print('from func1...')

    def func2():
        print('from func2...')

#函数对象
print(func1)

def f1():
    pass
def f2():
    pass

dic1 = {'1':f1,'2':f2}

choice = input('请选择功能编号:')
if choice == '1':
    print(dic1[choice]) #<function f1 at 0x000001657CDCA8C8>
    dic1[choice]()

elif choice == '2':
    print(dic1[choice]) #<function f2 at 0x0000025FC39DA950>
    dic1[choice]()


#函数的名称空间
x = 10
def func1():
    x = 20
    print('from func1...')
    print(x)    #20,查找从局部开始
    #x = 30
    def func2():
        print('from func2...')

func1() #调用函数func1()

 

上一篇:Python闭包


下一篇:day54 线程队列,协程基础