預設引數
在呼叫函式時,預設引數的值如果沒有傳入,則認為是預設值,帶有預設值的引數一定要位於引數列表的最後面
舉例1:
#-*- coding:utf-8 -*-
deftest(a,b): #定義乙個函式,傳入a和b
result = a+b
print("
result=%d
"%result)
test(11,22) #呼叫函式並且給出實參
test(22,22)
test(33,22)
root@ubuntu:/home/python/codes/python基礎-05#
python2 test.py
result=33result=44result=55
在這個程式當中,我們發現是有缺陷的,為什麼這樣說呢?我們可以看到,在我們呼叫test函式時候,傳入了兩個引數,但是在第二個引數後面都是一樣的,那麼我們可想:因為第二個引數是一樣的,那麼我們能不能修改一下**,讓第二個引數有著預設引數呢,即當我們只傳入乙個引數的時候,第二個引數是預設的;當我們傳入兩個引數的時候,我們傳過去的就是我們想要的呢?答案是可以
#-*- coding:utf-8 -*-
def test(a,b=22): #此時的b=22就是預設引數
result = a+b
print("
result=%d
"%result)
test(11)
test(22)
test(33)
root@ubuntu:/home/python/codes/python基礎-05#
python3 test.py
result=33result=44result=55
舉例2:
在上節我們說過help()函式可以檢視到函式的文件說明,讓我們現在來看下:
in [1]: help(print)help on built-in function print
inmodule builtins:
(...)
print(value, ..., sep='
', end='
\n', file=sys.stdout, flush=false) #end='\n'
就可以說明為什麼我們列印出來的東西就一定會換行,因為它是預設引數
prints the values to a stream,
orto sys.stdout by default.
optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
flush: whether to forcibly flush the stream.
舉例3:
in [2]: def test(a,b=22,c=33): #定義乙個函式,此時b和c是預設引數,即預設值...:
(a) ...:
(b) ...:
(c) ...:
in [3]: test(11,c=44) #呼叫函式,並傳入a的值為11,c的值為44
1122
44
python 預設引數 Python預設引數有坑?
最近有小夥伴在面試中遇到了 關於函式預設引數的坑 的題目,少數夥伴對此問題理得不是太清楚,今天匯智妹請到匯智動力高階教師鄧老師為大家詳細講解一下,幫助不太清楚的小夥伴清晰的梳理一遍。鄧老師本次主要從以下三點來講解 什麼是預設引數?函式預設引數的坑是什麼?函式預設引數為什麼會有坑?一 什麼是預設引數 ...
python 預設引數值 預設引數值
該樓層疑似違規已被系統摺疊 隱藏此樓檢視此樓 最常用的一種形式是為乙個或多個引數指定預設值。這會建立乙個可以使用比定義時允許的引數更少的引數呼叫的函式,例如 def ask ok prompt,retries 4,complaint yes or no,please while true ok in...
預設引數,命名引數,可變引數
def sayname name string pk unit sayname 其中預設引數為pk,所以此時輸出pk sayname dog 此時傳入引數dog,那麼就以你當前傳入的引數為準,輸出dogdef speed distance float time float float println...