considerare:lambda * args, ** kwargs: Nessuno
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')
La motivazione di fare in questo modo è che non devo mettere in logica per verificare se richiamata è stato assegnato, perché il default è blank_fn che non fa nulla.
Questo funziona, ma c'è qualche motivo per cui non dovrei farlo? È pitone? C'è un modo migliore per farlo? C'è un built-in per:
lambda *args, **kwargs: None
L'uso di 'lambda' per definire una funzione con nome non è Pythonic, no. Usa 'def'. – geoffspear