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