函数对象

函数是第一类对象的含义是函数可以被当作数据处理
函数可以被当成数据来处理
函数可以被当成数据来处理:数据可以被引用,可以被传参,可以作为容器里的元素,可以当作返回值。



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]()





原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9150751.html