函式的定義能簡化**的邏輯,對於函式的呼叫者來說,只需要知道如何正確的傳遞引數,以及知道函式將返回什麼值就可以了,而函式內部的複雜邏輯被封裝起來,呼叫者不必了解。
呼叫函式時,傳入實參的值按照位置順序以此賦給形參。
defpower(x, n):
s = 1
while
( n ):
n = n - 1s = s *x
return s
上面這個函式中的x和n就是位置引數。
python的函式同時還允許你給函式的引數設定預設值,當呼叫者沒有給出引數的值時自動使用預設值。設定預設引數時要注意,必選引數必須在預設引數之前。
def power(x, n = 2):s = 1
while
( n ):
n = n - 1s = s *x
return s
注意:預設引數必須指向不可變物件,否則會發生不可預知的錯誤。
在python函式中還可以定義可變的引數,引數的個數可以是任意個,定義引數時,只需要在引數的前面加乙個 * 符號即可。
defn(×num):
s = 1
for n in
num:
s = s *n
return
sa = n(1,2,3,4,5,6,7,8,9,10) #
a = 3628800
python的關鍵字引數允許你傳入任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict。傳入關鍵字引數的時候必須指定引數的名稱(引數名由呼叫者自行取定),否則該引數會被認為是位置引數從而報錯。
def person(name, age, **kw):print('
name:
', name, '
age:
', age, '
other:
', kw)
preson("j
",33,city = "
beaijing
",job = "
engineer
")
命名關鍵字引數:呼叫者傳遞引數必須給出引數名,而且引數名是函式定義者預先定義好的。
def person(name, age, *, city, job):(name, age, city, job)
#如果函式的引數中有可變引數,那麼後面的命名關鍵字引數就不需要 * 符號來定義了
def person(name, age, *args, city, job):
print(name, age, args,city, job)
總結:對於任意函式,都可以通過類似func(*args,**kw)的形式呼叫它,無論它的引數形式是怎樣的。
python3 函式引數
python函式引數包括五種型別 位置引數 預設引數 可變引數 關鍵字引數以及命名關鍵字引數。位置引數例如 def ex y y就是位置引數 例子 def ex y print y ex 2 預設引數 可以簡化函式的呼叫,設定預設引數時,要注意 一 必選引數在前,預設引數在後 二當函式有多個引數時,...
python3 函式的引數
函式的引數 預設引數 可變引數 關鍵字引數 命名關鍵字引數 版本 v1.0 日期 2019.03.26 python版本 3.7 引數預設值 def f1 a,b 5,c 10 return a b 2 c 3 print f1 1,2,3 print f1 100,200 print f1 100...
Python3 函式引數的傳入
在運維過程中,有些時候需要向main函式中傳遞引數,以方便運維與測試,那麼怎麼向main函式中傳入多個引數呢,下面以python3中的main函式為例,簡單講一下。首先我們需要import sys,sys是python3的乙個標準庫,也就是乙個官方的模組。封裝了一些系統的資訊和介面,然後再說說ar ...