python进阶之 ——函数对象、函数嵌套

函数对象

在面向对象编程中,一切皆对象。函数是第一类对象,也就是说,其内存地址可以像一个变量值一样去使用。而变量值可以:

I.被引用
II.当作参数传给另一个函数
III.当作函数返回值
IV.当作容器类型元素

so,函数可以(不加()时)作为一个对象,被当作值使用,而不是直接调用执行函数内代码。

这就是函数对象的概念,运用这个概念,可以简单的写一个函数字典:

def register():           #自定义一个函数
    print("register......")


def auth():
    print("login....")


def check():
    print("checking....")


func_dict = {"1": register, "2": auth, "3": check}  # 定义一个函数字典
while True:
    func_list = ["注册", "登录", "查看"]
    for i, item in enumerate(func_list, start=1):65  #enumerate是将(可遍历的数据对象)列表组合为一个索引序列,同时列出数据和数据下标,通常用在for循环中

        print(i, item)
    cmd = input(" inpput cmdmand>>")
    if func_dict.get(cmd):
        func_dict.get(cmd)()
    else:
        print("输入有误")
用户注册登录小程序

 

 

函数嵌套:

既然函数是对象,函数的操作都可以在其他函数内操作,比如定义和调用:

函数的嵌套调用:在一个函数内部又调用其他函数

函数的嵌套定义: 在函数内又定义了其他函数 

def open_door():
    print("你瞅啥")
    def putin():
        print("瞅你咋地")
        def close_door():
            print("再瞅抽你")
        close_door()
    putin()
open_door()
嵌套调用
 

定义在函数内的函数,只能在函数内使用,外界不能调用

 

posted @ 2019-05-21 19:49  呔!妖精。。。  阅读(124)  评论(0编辑  收藏  举报