粉毛红瞳精神病美少女松坂砂糖 (@MatsuzakaSato)私は天才だ( 中发帖

写Core的时候定义了一堆带callback的函数,一般来说可有可无的callback可以在参数里定义成None: 
def download(url, progress: Callable=None):
...
if progress and callable(progress):
progress(...)

每个回调函数使用之前都这么判断一遍显然不是那么 Lazy Friendly Pythonic,一个很显然的办法就诞生了:
def empty(*args, **kwargs):
pass

def download(url, progress: Callable=empty):
...
progress(...)

empty函数什么也没有干,只是作为一个可以接受任何参数传入的函数,成为了回调函数progress的默认值。...