python中將函式作為引數,區分將引數直接寫成函式名和函式名()的區別。
def fun1(fun):
print("---------------------")
print("---------------------")
print(fun) #執行fun1(fun4)時,fun為函式fun3的返回值x
print('type fun:', type(fun)) #type fun: fun()#執行fun1(fun4)報錯,執行fun1(fun2)時輸出######
def fun2():
print('######')
def fun3():
x = "!!!!!!!!!!!!!!!!!!!!!"
print('hello')
return x
fun4 = fun3() #傳函式fun3的返回值x
具體計算例子:
def prepare(a):
a = abs(a)
return a
def add(a, b, f):
return f(a) + f(b)
sum = add
print('type sum:', type(sum)) #type sum: print(sum(2, -1, prepare)) #3
特例(只傳函式名就可以呼叫函式):sort和sorted函式中的key和cmp(python3中使用cmp_to_key替代)。
cmp -- 比較的函式,具有兩個引數,引數的值都是從可迭代物件中取出,規則為:大於則返回1,小於則返回-1,等於則返回0。
key -- 主要是用來進行比較的元素,只有乙個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的乙個元素來進行排序。
from functools import cmp_to_key
num = [('b',2),('a',1),('f',3),('d',4)]
#按照元組index[0]排序
def func1(a, b):
return ord(a[0]) - ord(b[0])
#按照元組index[1]排序
def func2(a, b):
return a[1] - b[1]
#按照關鍵字元組index[0]排序
def func3(a):
return a[1]
print('num:',num)
# num.sort( key=cmp_to_key(func1))
# print(num)
#直接呼叫函式名
print('sort func1:', sorted(num, key = cmp_to_key(func1)))
print('sort func2:', sorted(num, key = cmp_to_key(func2)))
print('sort func3:', sorted(num, key = func3))
python顯示函式的引數 python函式的引數
函式的引數 一 形參和實參 形參 定義階段才有的形參,形式引數,沒有什麼用,但是具有意義,只是占個位置,方便呼叫。實參 呼叫階段才有的實參,實際的引數,具有具體的值 1.1形參 在函式定義的階段括號內定義的引數,稱之為形式引數,簡稱形參,本質就是變數名。def func x,y 定義階段才有的形參 ...
python的引數函式 關於python 函式引數
函式引數 必選引數 預設引數 可選引數 關鍵字引數 1.預設引數 預設引數可以簡化函式的呼叫。設定預設引數時,有幾點要注意 一是必選引數在前,預設引數在後,否則python的直譯器會報錯 二是如何設定預設引數。當函式有多個引數時,把變化大的引數放前面,變化小的引數放後面。變化小的引數就可以作為預設引...
python中full函式 Python函式混亂
我正在學習 python.我有乙個函式readwrite filename,list filename的型別為string.list是乙個包含要在檔案中重寫的字串的列表.我有乙個簡單的函式呼叫,如下所示 fname hello.txt readwrite xx fname,datalist 我面臨的...