python中func函数用法_python之4类回调函数的使用方法
原標題:python之4類回調函數(shù)的使用方法
將函數(shù)作為參數(shù)傳遞給另一個函數(shù),一共分為4種情況:
將普通函數(shù)傳遞給普通函數(shù)
將普通函數(shù)傳遞給類成員函數(shù)
將類成員函數(shù)傳遞給普通函數(shù)
將類成員函數(shù)傳遞給類成員函數(shù)
這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)
需要注意的是,如果回調函數(shù)是一個類成員函數(shù),那么調用該回調函數(shù)時,第一個參數(shù)必須是該類的一個對象,也就是說,必須將該類的對象,作為一個普通參數(shù),傳遞給調用該回調函數(shù)的函數(shù)。
比較拗口,上面的最后兩個調用,都是將person對象作為第3個參數(shù)傳遞給了某個函數(shù),某個函數(shù)內部又將該對像作為回調函數(shù)的第一個參數(shù)來調用回調函數(shù):
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+版齐曝光
- 下一篇: python tkinter pack