0
我正在寫一個函數,它需要2個常規參數(字符串)和1個函數。主要功能是使用2個字符串參數(例如保存到數據庫)。函數參數將允許添加額外的行爲。例如:Python自定義行爲通過傳遞函數
def call(arg1, arg2, func):
save(arg1, arg2) # main functionality here.
if callable(func):
func(arg1, arg2)
def with_callback():
def log(*args):
values = ', '.join(str(x) for x in args)
print('call used with arguments: {values}'.format(values=values)
call('example', 'case', log)
的想法是一樣的有效的Python:
Item 23:接受了簡單的接口而不是類的功能。
該實現因此將類似於list.sort(key=somefunc)
或第一參數collections.defaultdict
。
所以現在的問題歸結爲:
如何實現讓自定義行爲可以定義一個函數(或類?)取一個函數作爲參數?
(或表述有所不同:什麼是使用功能參數時行爲進行自定義的首選方式?)
你傳入一個函數對象?我不確定我會得到你的問題。 –
@leaf有效的Python鏈接應該比我更好地解釋它,但是。該函數具有一些主要功能(arg1,arg2),它允許您通過發送另一個函數來自定義某些行爲。 – Randyr
我不清楚什麼是關於示例代碼的不清楚。它應該工作得很好,我不知道你需要知道它不包括。 –