"""
1.一个函数作为另一个函数的返回值
2.一个函数作为另一个函数的参数
3.函数内部在定义一个函数
"""
def hanshu1():
print('我是函数1')
return 'hello'
def hanshu2():
print('我是函数2')
return hanshu1
def demo():
print('我是demo函数')
return hanshu1()
a = demo() #执行demo函数,并把demo函数执行的结果(返回值)赋值给a
print(a)
b = hanshu1()
print(b)
c = hanshu2()
print(c)
d = c()
print(d)
print('***********************************************************************')
def test1():
print('我是test1,我被调用了')
return 'test1'
def test2():
print('我是test2,我被调用了')
return test1()
x = test2()
print(x)
# y = test2()()
# print(y)
print('***********************************************************************')
def outer(x):
m = 100 #局部变量,只能在函数内部使用
print('我是outer函数')
def inner(): #inner是定义在outer函数内部的一个函数
n = 200
print('我是inneer函数')
if x > 18:
inner()
return inner
outer(12)
outer(20)
# outer()()
print('***********************************************************************')
#闭包函数
"""
函数的嵌套,外部函数要返回内部函数
"""
结果
我是demo函数
我是函数1
hello
我是函数1
hello
我是函数2
<function hanshu1 at 0x02B93DF8>
我是函数1
hello
***********************************************************************
我是test2,我被调用了
我是test1,我被调用了
test1
***********************************************************************
我是outer函数
我是outer函数
我是inneer函数
***********************************************************************
Process finished with exit code 0