本文将简单介绍普通函数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匿名函数/类成员函数作为回调函数的用法-StubbornHuang Blog纵使晴明无雨色,入云深处亦沾衣。