定義函式的時候,我們把引數的名字和位置確定下來,函式的介面定義就完成了。對於函式的呼叫者來說,只需要知道如何傳遞正確的引數,以及函式將返回什麼樣的值就夠了,函式內部的複雜邏輯被封裝起來,呼叫者無需了解。
#coding=utf-8
#除了正常定義的必選引數外,還可以使用預設引數、可變引數和關鍵字引數
#預設引數的定義方法:必選引數在前,預設引數在後,否則python的直譯器會報錯,預設引數必須指向不變物件!
def power(x, n=2):
s = 1
while n > 0:
s = s * x
n = n - 1
return s
#函式的引數改為可變引數:
#如果已經有乙個list或者tuple,要呼叫乙個可變引數怎麼辦?可以這樣做:
#>>> nums = [1, 2, 3]
#>>> calc(nums[0], nums[1], nums[2])
#14#這種寫法當然是可行的,問題是太繁瑣,所以python允許你在list或tuple前面加乙個*號,把list或tuple的元素變成可變引數傳進去:
#>>> nums = [1, 2, 3]
#>>> calc(*nums)
#14def getsum(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
#可變引數允許你傳入0個或任意個引數,這些可變引數在函式呼叫時自動組裝為乙個tuple。
#關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict
#可變引數類似,也可以先組裝出乙個dict,然後,把該dict轉換為關鍵字引數傳進去:
def keyword(name, age, **kw):
print(name, age, kw)
if 'city' in kw:
# 有city引數
if kw['city'] != none:
print (kw['city'])
#命名關鍵字引數
#如果要限制關鍵字引數的名字,就可以用命名關鍵字引數,例如,只接收city和job作為關鍵字引數。這種方式定義的函式如下:
def person(name, age, *, city='beijing', job):
print(name, age, city, job)
if __name__ == '__main__':
# 呼叫預設引數, 效果等於power(5,2)
print (power(5))
# 呼叫可變引數
print (getsum(5, 5, 0))
# 關鍵字引數
keyword('zhangsan', 18)
keyword('zhangsan', 18, city='beijing', ***='male')
extra =
keyword('jack', 24, **extra)
person('jack', 24, job='itengenier')
python學習 函式引數
數學定義 python函式 函式的作用 函式的分類 def 函式名 引數列表 函式體 塊 return 返回值 上面的 解釋 函式在定義時要約定好形式引數,呼叫時也提供足夠的實際引數,所以形參和實參個數要一致 可變引數除外 傳參方式 1.位置傳參 定義時def f x,y,z 呼叫使用f 1,3,5...
python函式引數學習 python函式學習1
函式1 1 定義 def 函式名 引數列表 函式體 2 引數傳遞 在python中,一切都是物件,型別也屬於物件,變數是沒有型別的。a 1,2,3 a helloworld 以上 中,1,2,3 是list型別,helloworld 是string型別,而變數a是沒有型別的,它僅僅是乙個物件的引用 ...
Python函式學習 函式 引數
本篇是對 python3函式的學習與小結,用於複習鞏固使用,如有理解偏差的地方,還望各位大佬指正。函式的作用 函式的分類 小結 def 函式名 引數列表 函式體 塊 return 返回值 小結 函式名 str 函式定義,只是宣告了乙個函式,它不會被執行,需要呼叫 呼叫的方式,就是函式名後加上小括號,...