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

 更新时间:2023年01月04日 09:15:29   作者:P&C#坚持  
这篇文章主要介绍了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)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解matplotlib绘图样式(style)初探

    详解matplotlib绘图样式(style)初探

    这篇文章主要介绍了详解matplotlib绘图样式(style)初探,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python时间转化方法超全总结

    Python时间转化方法超全总结

    在生活和工作中,我们每个人每天都在和时间打交道。本文就为大家总结了Python实现时间转化的多种方法,快来跟随小编一起学习一下吧
    2022-03-03
  • 快速解决pymongo操作mongodb的时区问题

    快速解决pymongo操作mongodb的时区问题

    这篇文章主要介绍了快速解决pymongo操作mongodb的时区问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • python使用xlrd实现检索excel中某列含有指定字符串记录的方法

    python使用xlrd实现检索excel中某列含有指定字符串记录的方法

    这篇文章主要介绍了python使用xlrd实现检索excel中某列含有指定字符串记录的方法,涉及Python使用xlrd模块检索Excel的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05
  • Python使用logging结合decorator模式实现优化日志输出的方法

    Python使用logging结合decorator模式实现优化日志输出的方法

    这篇文章主要介绍了Python使用logging结合decorator模式实现优化日志输出的方法,实例分析了Python使用logging模块操作日志的相关技巧,需要的朋友可以参考下
    2016-04-04
  • python调用cmd命令时遇到的路径空格问题和中文乱码的解决

    python调用cmd命令时遇到的路径空格问题和中文乱码的解决

    这篇文章主要介绍了python调用cmd命令时遇到的路径空格问题和中文乱码的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Pycharm导入anaconda环境的教程图解

    Pycharm导入anaconda环境的教程图解

    这篇文章主要介绍了Pycharm导入anaconda环境的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Python数据集切分实例

    Python数据集切分实例

    今天小编就为大家分享一篇Python数据集切分实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 如何使用Python Dotenv库管理环境变量

    如何使用Python Dotenv库管理环境变量

    使用python-dotenv库可以方便地管理环境变量,避免将敏感信息硬编码在代码中,这篇文章主要介绍了如何使用Python Dotenv库管理环境变量,需要的朋友可以参考下
    2025-02-02
  • 不可错过的十本Python好书

    不可错过的十本Python好书

    不可错过的十本Python好书,分别适合入门、进阶到精深三个不同阶段的人来阅读,感兴趣的小伙伴们可以参考一下
    2017-07-07

最新评论