最近自学CS61A课程(hog project)时看到这么一类函数,不知道有什么作用,还望各位高手解答。
def silence(score0, score1):
return silence
silence
<function silence at 0x7f8bd39cf488>
silence(1,2)
<function silence at 0x7f8bd39cf488>
silence(1,3)
<function silence at 0x7f8bd39cf488>
函数名是一个指向该函数的变量,可以“延迟计算”。当两个函数嵌套是,调用外部函数,内部函数不会执行,只有将外部函数的返回值赋予一个变量时,内层函数才会执行。
如:
def f():
print('我是外层函数')
def silence():
print('我是内层函数')
return silence
f() #调用外层函数
print('-'*10) #分割线
test = f() #把外部函数的返回值赋给变量test,因此test执行silence函数
print('-'*10) #分割线
test() #调用执行silence函数,输出“我是内层函数”
参考:https://blog.csdn.net/lisenlin5/article/details/105505002