#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