Python函数作为参数与回调函数的实现及参数类型详解

木白
木白
发布时间:2026-10-16 | 16人浏览过
原创

本文详解Python中如何将函数作为参数传递以实现回调机制,并结合元组与字典处理不定长参数。同时系统梳理了Python的四种参数类型:必需参数、关键字参数、默认参数及不定长参数,通过代码示例展示各类型的语法规范与使用场景,帮助开发者掌握函数调用的核心技巧。

Python中以函数作为参数(即回调函数)的实现方法

本文内容仅为个人学习总结。在实现回调函数时,常结合元组和字典使用。代码注释中已标注部分需要注意的细节。

#以函数作为参数
 
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)

总结

以上为个人经验总结,希望能给大家提供参考,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表