04-函数的嵌套
函数的嵌套
函数的嵌套调用
def my_max(x,y):
rst = x if x >y else y
return rst
def cal_4_num(a,b,c,d):
rst1 = my_max(a,b)
rst2 = my_max(c,d)
rst3 = my_max(rst1,rst2)
return rst3
print(cal_4_num(1,2100,4,6))
函数的嵌套定义
def f1():
x = 1
print("---------",x)
def f2():
print("------>",x)
def f3():
print("---->",x)
f3()
f2()
f1()
结果:
--------- 1
------> 1
----> 1
函数是第一类对象的概念(函数可以被当做数据来传递,简单来说变量咋用函数就能咋用)
函数可以被赋值:
def f1():
print("f1")
f2 = f1
print(f1,f2)
结果:
<function f1 at 0x000000193DB47048> <function f1 at 0x000000193DB47048>
把函数当成参数传递
def f1():
print("f1")
def f2(func):
print(func)
f2(f1)
f2(f1())
结果:
<function f1 at 0x00000093B5F47048>
f1
None
从上面的例子就可以看到f1这个函数可以像变量一样的被传递,f2(f1),其实就是给f2传递f1的这个参数,结果会把f1的内存地址打印出来。对于f2(f1()),f1()也就是调用f1这个函数,把返回值作为参数传给f2。调用f1,结果会print一个f1,因为f1()被调用了,但是f1()只有一个print并没有return返回值,因此传过去的func就是None,打印出来也是None。

浙公网安备 33010602011771号