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

目录
  • 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)

总结

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

(0)

相关推荐

  • python回调函数的使用方法

    有两种类型的回调函数: 复制代码 代码如下: blocking callbacks (also known as synchronous callbacks or just callbacks)deferred callbacks (also known as asynchronous callbacks) 那么,在python中如何实现回调函数呢,看代码: 复制代码 代码如下: def my_callback(input):    print "function my_callback was

  • 回调函数的意义以及python实现实例

    因工作需要,最近在学习使用python来解析各种文件,包括xmind,xml,excel,csv等等. 在学习python解析XML的时候看到这样一段话: ElementTree(元素树) ElementTree就像一个轻量级的DOM,具有方便友好的API.代码可用性好,速度快,消耗内存少. 注:因DOM需要将XML数据映射到内存中的树,一是比较慢,二是比较耗内存,而SAX流式读取XML文件,比较快,占用内存少,但需要用户实现回调函数(handler). 当时就犯了老毛病,被一个不是很知道的名词

  • Python回调函数用法实例详解

    本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应. 二.什么是回调: 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用.回调和异步调用.同步调用

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

    目录 python以函数作为参数(回调函数) python函数的参数类型 一.必须参数 二.关键字参数 三.默认参数 四.不定长参数 总结 python以函数作为参数(回调函数) 纯粹是自己学习总结之用.回调函数搭配了元组和字典.在注释中已经标明有些需要注意的细节. #以函数作为参数 def func_callback(func1,args): print("调用函数:") func1(args) print("____________________") def

  • 对python中使用requests模块参数编码的不同处理方法

    python中使用requests模块http请求时,发现中文参数不会自动的URL编码,并且没有找到类似urllib (python3)模块中urllib.parse.quote("中文")手动URL编码的方法.研究了半天发现requests模块对中文参数有3种不同的处理方式. 一.requests模块自动URL编码参数 要使参数自动URL编码,需要将请求参数以字典的形式定义,如下demo: import requests proxy = {"http":"

  • Python实现将元组中的元素作为参数传入函数的操作

    本文由Markdown语法编辑器编辑完成. 1. 需求: 现在有一个Python的需求需要实现: 就是实现连接一次数据库,就能够执行多条SQL语句,而且这个SQL语句是需要通过调用者将每一次执行的参数传入进来,组合成一条完整的SQL语句再去执行. 经过初步研究,传入参数时,通过数组的形式,数组中的每一个元素则是一个元组tuple(因为SQL中需要填入的参数可能是多个,所以需要通过元组的形式传入). 比如SQL语句的形式为: basic_sql = 'SELECT * FROM series se

  • python中map、any、all函数用法分析

    本文实例讲述了python中map.any.all函数用法.分享给大家供大家参考.具体分析如下: 最近想学python,就一直比较关注python,昨天在python吧看到有个帖子提问怎么在python中怎么判断密码是否符合规范,回帖中有很多用循环的,除此外还有一个没有用循环,代码非常简练,下面是代码: def volid(pwd): a = any(map(str.isupper,pwd)) b = any(map(str.islower,pwd)) c = any(map(str.isdig

  • 详解C#中通过委托来实现回调函数功能的方法

    委托(delegate)是一种可以把引用存储为函数的类型,这类似于c++中的函数指针. 回调函数 c++中的回调函数,就是用函数指针来实现的.类似的,c#中用委托,来实现回调函数的功能. 回调函数为什么被称为回调函数?比如你调用了一个函数,那么就叫调用,但是如果你在调用一个函数的时候,还需要把一个函数提供给该函数,让这个函数来调用你的函数,那么你提供的这个函数就被称为回调函数(callback). 对于python这样的动态语言而言,就没有c#,c++提供特殊的语法实现回调函数,因为在pytho

  • python中hasattr()、getattr()、setattr()函数的使用

     引言: 在阅读源码时,有很多简写的形式,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr().getattr().setattr()函数的使用也一并学习了一下. 正文: 1. hasattr(object, name) 判断object对象中是否存在name属性,当然对于python的对象而言,属性包含变量和方法:有则返回True,没有则返回False:需要注意的是name参数是string类型,所以不管是要判断变量还是方法,其名称都以字符串形式传

  • Python实现接受任意个数参数的函数方法

    这个功能倒也不是我多么急需的功能,只是恰好看到了,觉得或许以后会用的到.功能就是实现函数能够接受不同数目的参数. 其实,在C语言中这个功能是熟悉的,虽说实现的形式不太一样.C语言中的main函数是可以实现类似的功能的,可以通过这种方式实现一个支持命令行参数的程序. 先写一段python实现相应功能的示范代码: defFuncDemo(*par): print("number of pars: %d" %len(par)) print("type of par: %s"

  • 在Python中将函数作为另一个函数的参数传入并调用的方法

    在Python中,函数本身也是对象,所以可以将函数作为参数传入另一函数并进行调用 在旧版本中,可以使用apply(function, *args, **kwargs)进行调用,但是在新版本中已经移除,以function(*args, **kwargs)进行替代,所以也不应该再使用apply方法 示例代码: def func_a(func, *args, **kwargs): print(func(*args, **kwargs)) def func_b(*args): return args i

  • Python如何定义有默认参数的函数

    问题 你想定义一个函数或者方法,它的一个或多个参数是可选的并且有一个默认值. 解决方案 定义一个有可选参数的函数是非常简单的,直接在函数定义中给参数指定一个默认值,并放到参数列表最后就行了.例如: def spam(a, b=42): print(a, b) spam(1) # Ok. a=1, b=42 spam(1, 2) # Ok. a=1, b=2 如果默认参数是一个可修改的容器比如一个列表.集合或者字典,可以使用None作为默认值,就像下面这样: # Using a list as a

  • Python中非常实用的Math模块函数教程详解

    目录 math模块常数 1. 圆周率 2. Tau (τ) 3. 欧拉数 4. 无限 5. 不是数字 算术函数 1. factorial() 2. ceil() 3. floor() 4. trunc() 5. isclose() 幂函数 1. exp() 2. 对数函数 其他重要的math模块功能 由于该math模块与 Python 版本一起打包,因此您不必单独安装它,直接导入: import math math模块常数 Pythonmath模块提供了多种预定义常量.访问这些常量提供了几个优点

随机推荐