最近学习了python中的闭包及装饰器部分,对于内部函数下需要return func 大为不解,非常想知道为啥不是return func()呢?
于是我分别定义了个函数,查看带括号和不带括号的type.
def func1():
pass
print(type(func1))
#执行结果:<class 'function'>
print(type(func1()))
#执行结果:<class 'NoneType'>
由此可见:
使用return func 时返回的是func 这个函数;
使用return func() 时返回的是func() 执行后的返回值,如果func()函数没有返回值则返回值为None,
func函数如果有其他打印语句也会一起执行。