一、創(chuàng)建函數(shù)
創(chuàng)建一個(gè)函數(shù)用來(lái)計(jì)算三個(gè)數(shù)的和,如下:
def addnum3(num1, num2, num3):
"""
該函數(shù)用來(lái)計(jì)算三個(gè)數(shù)之和
:param num1: 第一個(gè)數(shù)字
:param num2: 第二個(gè)數(shù)字
:param num3: 第三個(gè)數(shù)字
:return: 和值
"""
return num1 + num2 + num3
下來(lái),我們對(duì)其進(jìn)行調(diào)用:
result = addnum3(2, 4, 5)
print(result)
# 11
二、引出問(wèn)題
假設(shè)我們要計(jì)算這個(gè)函數(shù)返回結(jié)果的平均值。那么此時(shí),我們只需將和值除以參數(shù)個(gè)數(shù)即可,那么參數(shù)個(gè)數(shù)怎么獲取呢?你可能會(huì)說(shuō):數(shù)一下就知道了。那么假設(shè)此時(shí)有很多的參數(shù),你還去數(shù)嗎?此時(shí),明顯這個(gè)方法是不恰當(dāng)?shù)?,那么有沒(méi)有更加方便、高效的方法呢?我們接著往下看。
三、解決問(wèn)題
print(addnum3.__code__.co_argcount)
# 3
# 輸出的函數(shù)參數(shù)個(gè)數(shù)
print(addnum3.__code__.co_varnames)
# ('num1', 'num2', 'num3')
# 這里會(huì)輸出函數(shù)用到的所有變量名,不只是參數(shù)名
print(addnum3.__defaults__)
# None
通過(guò)上面這個(gè)例子,我們不但可以獲取參數(shù)個(gè)數(shù),還可以獲取所有變量名以及默認(rèn)返回值。此時(shí),我們只需根據(jù)自己的需求,去應(yīng)用就可以了,那么以上的問(wèn)題,就自然解決了。
