blank_fn = lambda *args, **kwargs: None
def callback(x, y, z=''):
print x, y, z
def perform_task(callback=blank_fn):
print 'doing stuff'
callback('x', 'y', z='z')
對於做這種方式是我沒有把邏輯檢查,如果回調已被分配,因爲它默認爲blank_fn的動機它什麼都不做。
這是有效的,但有什麼理由我不應該這樣做嗎?它是pythonic嗎?有沒有更好的方法來做到這一點?是否有一個內置的:
lambda *args, **kwargs: None
使用'lambda'定義命名函數不是Pythonic,no。使用'def'。 – geoffspear