6.1 形參與實參以及位置引數
6.2 預設引數
引數在前,預設引數在後
def
test
(a=1
, b=
2, c=3)
:print
("a=%d b=%d c=%d"
%(a, b, c)
)test(c=
2)
如果預設引數是列表
def
test
(l=)
:"end"
)print
(l)test([1
,1,1
])test([2
,2,2
])
輸出:
[1, 1, 1, 『end』]
[2, 2, 2, 『end』]
def
test
(l=)
:"end"
)print
(l)test(
)test(
)
輸出:
[『end』]
[『end』, 『end』]
函式在定義的時候,預設引數的值已確定,換句話說,l指向的位址是確定,之後如果還是對其內容進行更改的話,預設引數的值也隨之改變了
注意:預設引數必須指向不可變物件
6.3 可變物件
可變物件就是呼叫函式時,傳遞引數的個數的可變的。
def
sum(
*numbers)
:print
(type
(numbers)
) total =
0for i in numbers:
total += i
return total
print
(sum(1
,2,3
))
輸出結果:
66.4 命名關鍵字引數
限制呼叫者不能按位置傳遞,需要放在形參的後面,並在前面使用星號*(獨佔乙個引數位)與普通形參分隔
def
person
(name, age,
*, pet)
:print
(name,age,pet)
person(
"wiggin",29
,pet=
"tomcat"
)def
person
(name, age,
*, pet=
"cat"):
print
(name,age,pet)
person(
"wiggin",29
)
一旦使用命名關鍵字之後,如果呼叫時,沒指定引數名,會報相應的錯誤
特別注意:如果函式定義中已經有了乙個可變引數,後面跟著的命名關鍵字引數就不再需要乙個特殊分隔符
6.5 關鍵字引數
關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個
dict.
def
person
(name, age,
**kw)
:print
(type
(kw)
)print
('name:'
, name,
'age:'
, age,
'other:'
, kw)
person(
"wiggin",29
,city=
"廣州"
,pet=
"cat"
)def
person
(name, age,
**kw)
:print
('name:'
, name,
'age:'
, age,
'other:'
, kw)
other_info =
print
(type
(other_info)
)person(
"wiggin",29
,city=
"廣州"
,**other_info)
混合使用引數
混合使用時,引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。
python核心程式設計學習記錄之基礎知識
雖然對python的基礎知識有所了解,但是為了更深入的學習,要對python的各種經典書籍進行學習 第一章介紹python的優缺點,略過 第二章介紹python起步,第三章介紹python基礎,僅記錄一些有用的 python支援五種基本的數字型別 int 有符合整數 long 長整數 bool 布林...
python基礎知識之集合
鑑於前面已經對列表的一些用法進行過介紹,本篇文章就從元組開始說 首先,元組和列表的形式上是差不多的,都是儲存大量資料的一組集合,但是也是有不同點的 下面舉個列子 元組 test 1,3,xx 列表 test1 1,2,xx 從上面的列子可以看出在定義元組和列表時需要注意的不同,元組用的小括號,而列表...
python基礎知識之元組
元組和列表都是序列,但是元組不能修改。元素用逗號隔開,就自動建立了元組,元組一般通過圓括號括起來。1,2,3 1,2,3 wang wei na wang wei na 1,2,3 1,2,3 空元組 沒有內容的圓括號。乙個值的元組 乙個值要加上逗號。12,12,12,12,1212 3 40 2 ...