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 @ 2020-12-13 21:45  正霜霜儿  阅读(74)  评论(0编辑  收藏  举报