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
每天进步一点点~~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!