python--函数对象的学习

#1.可以把函数当作变量去用,可以赋值
# func=内存地址
def func():
    print("from func")
f=func
print(f,func)
f()
func()
<function func at 0x105f071f0> <function func at 0x105f071f0>
from func
from func
#2.可以当作函数的参数传给另一个函数
def func():
    print("from func")
def foo(x):
    x()
    print(x)
foo(func)
from func
<function func at 0x103b151f0>
#3。可以当作函数当作另一个函数的返回值

def foo(x): #x=func的内存地址
return x #返回func的内存地址
res=foo(func) #foo(func的内存地址)
print(res) #打印func的内存地址
res()
res()
<function func at 0x10bc791f0>
from func

#4. 

#4。可以当作容器类型的一个元素
l=[func,]
print(l)
l[0]()

dic={"k1":func}
print(dic)
dic['k1']()
[<function func at 0x10ff401f0>]
from func
{'k1': <function func at 0x10ff401f0>}
from func
#ATM 练习
复制代码
def login():
    print("登陆功能")
def transfer():
    print("转账功能")
def check_balance():
    print("查询余额")
def register():
    print("注册功能")

while True:
    print("""
    1:登陆功能
    2.转账功能
    3.查询余额
    4.注册功能
    """)
    choice=input("请输入编号:").strip()
    if not choice.isdigit():
        print("请输入正确的指令")
        continue
    if choice=="0":
        break
    func_dic={"1":login,'2':transfer,'3':check_balance,'4':register}
    if choice in func_dic:
        func_dic[choice]()
    else:
        print("输入的指令不存在")
复制代码
复制代码
/usr/local/bin/python3.8 /Users/futantan/PycharmProjects/S14/函数的学习/函数对象.py

    1:登陆功能
    2.转账功能
    3.查询余额
    4.注册功能
    
请输入编号:1
登陆功能

    1:登陆功能
    2.转账功能
    3.查询余额
    4.注册功能
    
请输入编号:2
转账功能

    1:登陆功能
    2.转账功能
    3.查询余额
    4.注册功能
    
请输入编号:3
查询余额

    1:登陆功能
    2.转账功能
    3.查询余额
    4.注册功能
    
请输入编号:4
注册功能

    1:登陆功能
    2.转账功能
    3.查询余额
    4.注册功能
    
请输入编号:5
输入的指令不存在

    1:登陆功能
    2.转账功能
    3.查询余额
    4.注册功能
    
请输入编号:6
输入的指令不存在

    1:登陆功能
    2.转账功能
    3.查询余额
    4.注册功能
    
请输入编号:aa
请输入正确的指令

    1:登陆功能
    2.转账功能
    3.查询余额
    4.注册功能
    


复制代码
##函数的嵌套
##函数的嵌套使用,在调用一个函数的过程中又调用另外一个函数
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=max(res2,d)
    return res3
res = max4(3,4,5,6)
print(res)
复制代码

/usr/local/bin/python3.8 /Users/futantan/PycharmProjects/S14/函数的学习/函数对象.py
6

Process finished with exit code 0

 

 
复制代码
posted @   正霜霜儿  阅读(75)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示