前言:
今天朋友们对“如下代码的功能是”大约比较注意,小伙伴们都需要分析一些“如下代码的功能是”的相关文章。那么小编在网络上网罗了一些对于“如下代码的功能是””的相关资讯,希望大家能喜欢,同学们一起来学习一下吧!函数名本质上其实就是一个变量,这个变量指向的是一个函数!
函数必须先定义,才可以被调用执行 (因为python是解释型语言,从上到下)
函数作为变量
将函数名字赋值给其他变量,函数名其实就是这个变量,代指这个函数 ; 如果将一个字符串或者列表等数据赋值给一个函数名,那么这个函数名就指向这个字符串和列表,可以理解为函数不存在了,变量字符串或列表的数据变量了。
(1)场景1
def func(): return 123data_list=["你好","func",func,func()]print(data_list[0]) #你好print(data_list[1]) #funcprint(data_list[2]) #<function func at 0x0000021CBE7D6280>print(data_list[2]()) #123print(data_list[3]) #123
def func(a1,a2): print(a1,a2)func(1,2)a = funcprint(a(2,3)) #2 3func = "你好"print(func) #你好
注意:函数同时也被哈希,所以函数名通知可以当做列表的元素,字典的建?这个是啥意思,如下
在Python中,函数同时也是哈希的意思是指函数可以被当作哈希表的键使用。在Python中,函数是第一类对象,这意味着函数可以被赋值给变量,可以作为函数参数,可以作为函数的返回值,也可以被放入到集合(例如,set或dict)中。但是,由于函数是不可哈希的(因为它们是可变的),你不能将函数直接用作字典的键。然而,你可以将函数的内存地址作为字典的键,或者使用其他的可哈希对象来标识函数。例如,你可以使用函数的内存地址作为键:
def send_message(): print('信息')def send_image(): print('图片')data_dice={ '1':send_message, '2':send_image}biaohao = input('请输入编号:')func = data_dice[biaohao]if not func: print('输入错误')else: func()
def send_message(): print('信息')def send_image(): print('图片')data = [send_message,send_image]for i in data: print(i())
说白了也就是说函数名字可以被当做变量进行传递,使用的使用直接加()就可以调用函数了
如果参数不同呢?如下代码
def send_message(*args,**kwargs): print(kwargs)def send_image(*args,**kwargs): print(kwargs)data_dice=[ {'func':send_message,'parmas':{'name':'fc','age':18}}, {'func':send_image,'parmas':{'sex':1}}]for data in data_dice: data['func'](**data['parmas'])
(2)场景2:函数名作为返回值
def plus(num): return num + 10def handler(): print("nihao") return plusdata = handler()print(data(20))
(3)场景3:函数名作为参数
def plus(num): return num + 10def handler(func): res = func(10) msg = "会指向func函数哦,结果为{}".format(res) print(msg)handler(plus)
标签: #如下代码的功能是