day12-----函数名的应用,闭包,迭代器
1.函数名的运用:
函数名( func() ) 是一个变量,和变量有相同点,也有不同点
相同点: 变量的命名规则适用于函数名,同样的可以进行赋值操作
不同点: 函数名不能进行逻辑运算.
1> 函数名的内存地址,函数名是由内存地址的,用 print( func ) 可以查出来
def func():
print("爱你,我的宝宝")
print(func) ---------------------------------------此时打印结果是<function func at 0x00000266D9203158> 一个内存地址
变量 : a = 10
print( id(a) ) ------------------------------------此时打印的结果是:1954966832 也是一串数字,表示内存地址
二者在查找内存地址的时候变量需要引入id() 内置函数,而函数在查找的时候不用.
2> 函数名可以赋值给其他变量,可以进行赋值操作
例如: def func()
print("宝宝最萌")
a = func ----------------------------把函数名赋值给变量 a
a() 和 func() 表示的意思一样,都是调用函数 func()
3>函数可以当作容器类的元素,其实函数名就相当于一个句柄,它把函数里边的东西封装起来,打包放在一个地方,函数名就是一个药引子,当用的时候才会被调用 (加(), )
def func1():
print("哈哈")
def func2():
print("呵呵")
def func3():
print("啊啊")
def func4()
print("嗯嗯")
lst = [func1,func2,func3,func4]
for i in lst:
i() --------------------------------------此时打印的是: "哈哈" "呵呵" "啊啊" "嗯嗯"
4>函数名可以当作函数的参数(参数),很灵活
例如: def func():
print("这里是函数1")
def func1(fn): -------------------------2调用函数 func1()
print("哈哈哈") -------------3,打印"哈哈哈"
fn() ----------------------------4,此时的fn = func,当fn(),其实就是调用func()函数
func1(func) -----------------------运行结果是: "呵呵呵" "哈哈哈" "呵呵呵" ......1先调用func1
5>函数名可以当作函数的返回值 , return func
例如:def func_1():
print()