函数名也能够当作变量,

函数名是一个特殊的变量,加括号就能执行函数,函数的名字,本质是变量,特殊的变量
函数名能够当作变量使,能够赋值,能够做为容器类的数据元素,能够做参数,做为函数的返回值
 
 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
相关文章
相关标签/搜索