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)返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的python中func函数用法_python之4类回调函数的使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米12 Pro天玑版与骁龙8+版齐曝光
- 下一篇: 新势力超跑鼻祖前途推新车:双门纯电小钢炮