本文将简单介绍普通函数、lambda匿名函数、类成员函数作为回调函数的用法,回调函数参数采用不定长tuple参数列表进行传递
1 普通函数作为回调函数
# -*- coding: UTF-8 –*-
def callback_func(*kwargs):
print(kwargs)
def process_callback_func(callback_func):
for i in range(10):
if i % 2 == 0:
callback_func(i,i,i,i,i,i,i)
if __name__ == '__main__':
print('=====>普通函数')
process_callback_func(callback_func)
输出结果:
=====>普通函数
(0, 0, 0, 0, 0, 0, 0)
(2, 2, 2, 2, 2, 2, 2)
(4, 4, 4, 4, 4, 4, 4)
(6, 6, 6, 6, 6, 6, 6)
(8, 8, 8, 8, 8, 8, 8)
2 lambda匿名函数作为回调函数
# -*- coding: UTF-8 –*-
def callback_func(*kwargs):
print(kwargs)
def process_callback_func(callback_func):
for i in range(10):
if i % 2 == 0:
callback_func(i,i,i,i,i,i,i)
if __name__ == '__main__':
print('=====>lambda函数')
process_callback_func(lambda *args:print(args))
输出结果:
=====>lambda函数
(0, 0, 0, 0, 0, 0, 0)
(2, 2, 2, 2, 2, 2, 2)
(4, 4, 4, 4, 4, 4, 4)
(6, 6, 6, 6, 6, 6, 6)
(8, 8, 8, 8, 8, 8, 8)
3 类成员函数作为回调函数
如果回调函数是一个类成员函数,那么调用该回调函数时,第一个参数必须是该类的一个对象,也就是说,必须将该类的对象,作为一个普通参数,传递给调用该回调函数的函数。
# -*- coding: UTF-8 –*-
class basic:
def __init__(self):
pass
def callback(self,*param):
print(param)
def process_obj_callback_func(obj,callback_func):
for i in range(10):
if i % 2 == 0:
callback_func(obj,i,i,i,i)
if __name__ == '__main__':
print('=====>类成员函数')
process_obj_callback_func(basic(),basic.callback)
pass
输出结果:
=====>类成员函数
(0, 0, 0, 0)
(2, 2, 2, 2)
(4, 4, 4, 4)
(6, 6, 6, 6)
(8, 8, 8, 8)
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Python – 普通函数/lambda匿名函数/类成员函数作为回调函数的用法
原文链接:https://www.stubbornhuang.com/1252/
发布于:2021年04月08日 22:55:10
修改于:2023年06月26日 21:46:33
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52