今天看书注意到一个问题,就是有些函数的返回值是直接return func,有些则是return func(),看不清其区别,所以自己探究了一下。
首先定义一个foo函数:
def foo():
pass
察看type(foo) 得到:<type 'function'>
察看type(foo())得到:<type 'NoneType'>
再定义一个bar函数:
def bar(foo):
return foo()
察看type(bar) 得到: <type 'function'>
察看type(bar(foo))得到:<type 'NoneType'>
综上所述:使用return func 时返回的是func 这个函数,使用return func() 时返回的是func() 执行后的返回值,如果func()函数没有返回值则返回值为None,而且此时func函数如果有其他打印语句之类的也会一起执行。