函数是第一类对象的含义是函数可以被当作数据处理
函数可以被当成数据来处理
函数可以被当成数据来处理:数据可以被引用,可以被传参,可以作为容器里的元素,可以当作返回值。
def func(): #func=<function func at 0x0584BA50> 函数名在全局名称空间里,存放着函数名和函数的地址
print('from func')
print(func) # 返回一个内存地址
func()
函数名的用途
x='hello'
1、引用
y=x
def func():
print(1111)
f=func # 函数名可以被引用,通过变量名也可以调用函数
print(f)
f() # 等同于func()
2、当作参数传给一个函数
函数名可以赋值给变量名,变量名可以作为形参,函数名也可以作为实参向形参传值
def func():
print(666)
def foo(m):
# print(m)
m()
foo(func)
3、可以当作函数的返回值
def func():
print(666)
def foo(x): #x=func
return x #return func
# print(x)
res=foo(func)
print(res)
res()
4、可以当作容器类型的元素
def func():
print(666)
# l=[x,]
l=[func,] # 函数可以被当成变量来处理,可以通过索引取出函数名
# print(l)
l[0]()
def pay():
print('支付。。。')
def withdraw():
print('取款。。。')
def transfer():
print('转账。。。')
def check_balance():
print('查看余额。。。')
def shopping():
print('购物。。。')
func_dic={
'1':pay,
'2':withdraw,
'3':transfer,
'4':check_balance,
'6':shopping
}
while True:
msg="""
1 支付
2 取款
3 转账
4 查看余额
5 退出
6 购物
"""
print(msg)
choice=input('>>: ').strip()
if choice == '5':break
if choice not in func_dic:
print('输入的指令不存在傻叉')
continue
func_dic[choice]()