2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python中func函数用法_python之4类回调函数的使用方法

python中func函数用法_python之4类回调函数的使用方法

时间:2022-08-15 04:48:43

相关推荐

python中func函数用法_python之4类回调函数的使用方法

原标题:python之4类回调函数的使用方法

将函数作为参数传递给另一个函数,一共分为4种情况:

将普通函数传递给普通函数

将普通函数传递给类成员函数

将类成员函数传递给普通函数

将类成员函数传递给类成员函数

这4种情况,在python中都支持。

#!/usr/bin/python3

class Person:

def __init__(self):

pass

def callback(self, data, param = None):

print(self.__class__.__name__ + " callback:")

print("data: " + str(data))

print("param: " + str(param))

def do_call_func(self, func, data, param = None):

print(self.__class__.__name__ + " do_call_func:")

func(data, param)

def do_call_class_func(self, func, data, obj, param = None):

print(self.__class__.__name__ + " do_call_class_func:")

func(obj, data, param)

def mycallback(data, param = None):

print("data: " + str(data))

print("param: " + str(param))

def do_call_func(func, data, param = None):

func(data, param)

def do_call_classfunc(func, data, obj, param = None):

func(obj, data, param)

person = Person()

#common func as callback pass to common func

do_call_func(mycallback, "1111111111", "xxx")

#common func as callback pass to class func

person.do_call_func(mycallback, "22222222")

#class func as callback pass to common func

do_call_classfunc(Person.callback, "333333333", person, None)

#class func as callback pass to class func

person.do_call_class_func(Person.callback, "44444444", person, None)

需要注意的是,如果回调函数是一个类成员函数,那么调用该回调函数时,第一个参数必须是该类的一个对象,也就是说,必须将该类的对象,作为一个普通参数,传递给调用该回调函数的函数。

比较拗口,上面的最后两个调用,都是将person对象作为第3个参数传递给了某个函数,某个函数内部又将该对像作为回调函数的第一个参数来调用回调函数:

do_call_classfunc(Person.callback, "333333333", person, None)

person.do_call_class_func(Person.callback, "44444444", person, None)返回搜狐,查看更多

责任编辑:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。