python中以函数作为参数(回调函数)的实现方法
P&C#坚持 人气:0python以函数作为参数(回调函数)
纯粹是自己学习总结之用。回调函数搭配了元组和字典。在注释中已经标明有些需要注意的细节。
#以函数作为参数 def func_callback(func1,args): print("调用函数:") func1(args) print("____________________") def f1(x): print("回调函数启动:",x) func_callback(f1,100) def func_callback_tuple(func2,*args): print("回调函数和元组相结合:") func2(args)#这里的“*”号可以有,也可以省略。 print("____________________") def f2(*x): print("带tuple参数回调函数启动:") print(type(x),x) func_callback_tuple(f2,99,98,97,96) def func_callback_dic(func,**kwargs): print("回调函数和字典相结合:") func(**kwargs)#两个星号要加上,不能省略 print("____________________") def f3(**x): print("带tuple参数回调函数启动:") print(type(x),x) func_callback_dic(f3,aa=1,bb=2,cc=3)
输出为:
python函数的参数类型
在调用函数时,信息可以作为参数传递给函数,参数在函数名后的括号内指定。python有以下四种参数传递类型:
- 必需参数
- 关键字参数
- 默认参数
- 不定长参数
一、必须参数
必需参数须以正确的顺序传入函数,调用时的数量必须和声明时的一样。
def printme( str ): print (str) return printme("Hello World!")
上述程序在调用printme()函数时必须传入一个字符串参数,负责程序在运行时会报错。
二、关键字参数
关键字参数在调用时通过关键字来确定传入的参数,并不需要一定保证参数的顺序和声明函数时的参数顺序一致。
def my_function(child3, child2, child1): print("The youngest child is " + child3) my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")
三、默认参数
默认参数是在函数声明时就给形参赋值,在调用函数时如果没有给参数传递值那么就默认使用声明时所赋的值。
def my_function(name,country = "China"): print(name + "is from" + country) my_function("张三") my_function("张三","中国")
四、不定长参数
有时候可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数,基本语法如下:
加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。
def printinfo( arg1, *vartuple ): "打印任何传入的参数" print ("输出: ") print (arg1) print (vartuple) # 调用printinfo 函数 printinfo( 70, 60, 50 )
加了两个星号 ** 的参数会以字典的形式导入。
def printinfo( arg1, **vardict ): "打印任何传入的参数" print ("输出: ") print (arg1) print (vardict) # 调用printinfo 函数 printinfo(1, a=2,b=3)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容