函数名也可以当做变量,

Posted sunny7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数名也可以当做变量,相关的知识,希望对你有一定的参考价值。

函数名是一个特殊的变量,加括号就能执行函数,函数的名字,本质是变量,特殊的变量
函数名可以当做变量使,可以赋值,可以作为容器类的数据元素,可以作参数,作为函数的返回值
 
 1.赋值
def func1():
    print(666)
f = func1()  #将函数名赋值给一个变量f
print(f)
 
 2.作为容器类的数据元素
def f1():
print(111)
 
def f2():
print(222)
 
def f3():
print(333)
 
def f4():
print(444) #如何只调用一个将f1-f4的值全部打印出来.
 
l1 = [f1, f2, f3, f4] #建立一个列表将全部要调用的函数名添加进来.
for i in l1: #进行循环,
i() #i就是每一个函数名,用i()就哭直接循环调用每一个函数.!!!不能直接print,
如果是将很多个函数名添加到一个列表进行循环,然后进行调用呢?
 
l2 = [] #x先建一个空的列表
for i in range(1,5): #假如是要添加10个函数名
l2.append("f" + str(i))
for j in l2:
eval(j)() #eval抛开字符串的俩边,eval()括号里要跟个要抛开的对象,而i又要调用,分开就是俩步eval(i),i()
 
 3.函数名可以作为参数(传参)
a = 1
def f1(x):
print(x)
f1(a) #这样分解看,把a = 1传参给x,,即x 的值就变成a = x =1,所以打印结果是1
 
def f1():
print(666)
def f2(x): # x = f1,x相当于f1
x()
f2(f1) #调用f2,把f1传参给x,即x =f1 = 666,执行x就等于打印666
 
4.函数名可以作为函数的返回值
def f1():
print(666)
def f2(x):
return x
ret = f2(f1)
ret()
执行f2把f1传给x, return x是返回,给f2(f1)这个整体,这个整体是等于f1,然后把f2(f1)赋值给ret,最后执行ret打印666
 
 
 
 
 
 
 
 
 
 

以上是关于函数名也可以当做变量,的主要内容,如果未能解决你的问题,请参考以下文章

11.11函数对象,名称空间,作用域,命名关键字参数

第三天

Python高阶函数

闭包和迭代器

函数的后续操作

11.Python迭代器