龙空技术网

函数最为变量

会做饭的程序员 23

前言:

今天朋友们对“如下代码的功能是”大约比较注意,小伙伴们都需要分析一些“如下代码的功能是”的相关文章。那么小编在网络上网罗了一些对于“如下代码的功能是””的相关资讯,希望大家能喜欢,同学们一起来学习一下吧!

函数名本质上其实就是一个变量,这个变量指向的是一个函数!

函数必须先定义,才可以被调用执行 (因为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)

标签: #如下代码的功能是