当前位置:首页笔记分享26 函数对象与嵌套

26 函数对象与嵌套

一. 函数在 Python 中是第一类对象 函数对象的四种用法 def func(): # func= 函数的…

共计 1428 个字符,预计需要花费 4 分钟才能阅读完成。

一. 函数在 Python 中是第一类对象

函数对象的四种用法

def func():     # func= 函数的内存地址
    print('from func')

1、可以被引用 (被赋值)

def bar():
    print('from bar')
f=bar
f()  # from bar

2、可以当做参数传入

def bar():
    print('from bar')
def wrapper(func): #func=bar
    func()         #bar()
wrapper(bar)       #from bar

3、可以当做函数的返回值

def bar():
    print('from bar')
def foo(func):  #func=bar
    return func #return 函数 bar 的内存地址
f=foo(bar)      #f = func = bar
f()             #bar()---> from bar

4、可以当做容器类型的元素

👻建一个列表, 将函数放进去
def get():
    print('from get')
def put():
    print('from put')
l=[get,put]
l[0]()  #---> get()---> from get
l[1]()  #---> put()---> from put
  • 模拟购物车示例
👻实现登入, 注册, 转账, 提现等功能
def login():
    print('login')
def register():
    print('register')
def tranfer():
    print('transfer')
def withdraw():
    print('withdraw')
func_dic={"1":[login," 登录 "],
    "2":[register," 注册 "],
    "3":[tranfer," 转账 "],
    "4":[withdraw," 提现 "]
}
while True:
    print("0 退出 ")
    for k in func_dic:
        print(k,func_dic[k][-1])
    choice=input(" 请输入操作编号: ").strip()
    if choice == "0":
        break
    if choice in func_dic:
        func_dic[choice][0]()
    else:
        print(" 输入的操作不存在 ")

二. 函数嵌套

1. 函数嵌套定义

  • 在函数内定义其他函数
def f1():
    print('from f1')
    def f2():
        print('from f2')
    f2()
f1()
👻计算圆的周长和面积
from math import pi         #导入 math 模块
def circle(radius,mode=0):
    def perimiter(radius):  #计算周长函数
        return 2 * pi * radius
    def area(radius):       #计算面积函数
        return pi * (radius ** 2)
    if mode == 0:           #选 0 则计算周长
        return perimiter(radius)
    elif mode == 1:         #选 1 则计算面积
        return area(radius)
res=circle(10,mode=1)       #传入半径 10 , 选择 1 
print(res)                  #314......

2. 函数嵌套调用

  • 在调用一个函数的过程中又调用其他函数的组合
👻比较两个值的大小
def max2(x,y):
    if x > y:
        return x
    else:
        return y
👻比较四个值的大小
def max4(a,b,c,d):
    res1=max2(a,b)
    res2=max2(res1,c)
    res3=max2(res2,d)
    return res3
res=max4(1,2,3,4)
print(res)  # 4
温馨提示:

文章标题:26 函数对象与嵌套

文章链接:https://xiao9.cc/79.html

更新时间:2024年02月17日

本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:88574102@qq.com我们将第一时间处理! 资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。 所有资源仅限于参考和学习,版权归原作者所有,更多请阅读筱玖云网络服务协议

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧