函數名是一個特殊的變量,加括號就能執行函數,函數的名字,本質是變量,特殊的變量
函數名能夠當作變量使,能夠賦值,能夠做爲容器類的數據元素,能夠做參數,做爲函數的返回值
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