形參:函式定義使用的引數
實參:函式呼叫使用的引數
1、位置實參:引數的先後順序很重要
def
func
(first, last)
:print
("fisrt: "
+ first,
",last: "
+ last +
"\n"
)func(
'a',
'b')
func(
'b',
'a')
fisrt: a ,last: b
fisrt: b ,last: a
2、關鍵字實參:在傳引數的時候,將實參指定給形參,和引數順序無關
def
func
(first, last)
:print
("fisrt: "
+ first,
",last: "
+ last +
"\n"
)func(last =
'a', first =
'b')
func(first =
'b', last =
'a')
fisrt: b ,last: a
fisrt: b ,last: a
預設值:
在編寫函式的時候,可以給形參指定乙個預設值,當這個函式被呼叫時沒用傳遞該形參,那麼這個形參的值就是預設值。
def
func
(first, last=
'c')
:print
("fisrt: "
+ first,
",last: "
+ last +
"\n"
)func(first =
'b')
func(
'b')
func(
'a',
'b')
func(first =
'b', last =
'a')
fisrt: b ,last: c
fisrt: b ,last: c
fisrt: a ,last: b
fisrt: b ,last: a
3、傳遞可選的實參:將可選的那個形參放到引數最後並賦值為空字串
def
get_name
(first_name, last_name, middle_name='')
:if middle_name:
full_name = first_name+
" "+middle_name+
" "+last_name
else
: full_name = first_name+
" "+last_name
return full_name.title(
)name1 = get_name(
'wang'
,'xiao'
,'ming'
)name2 = get_name(
'wang'
,'ming'
)print
(name1 +
'\n'
+ name2)
wang ming xiao
wang ming
4、傳遞任意數量的實參
def
func
(*args)
:print
(args)
func(
'a')
func(
'b')
func(1)
func(
'a',
'b')
func(
'a',
'b',
'c')
func(
'a',
'b',
'c',
'd')
(
'a',)(
'b',)(
1,)(
'a',
'b')
('a'
,'b'
,'c')(
'a',
'b',
'c',
'd')
其中 *args 讓python建立乙個名為args的空元組,並將接受到的所有實參都放到這個元組中
5、位置實參&&任意數量實參
如果讓函式接受不同型別的實參,必須在 函式定義中將接納任意數量實參的形參放在最後
python先匹配位置實參和關鍵字實參,然後把其餘引數放到最後乙個形參裡
def
message
(age,
*other)
:print
("age: "
+str
(age)
)for i in other:
print
(i)message(18,
'c cup'
)message(
100)
message(20,
'red'
,'blue'
,'white'
)
age:
18c cup
#age:
100#
age:
20red
blue
white
6、關鍵字實參&&任意數量
當需要接受任意數量的實參,但是預先不知道傳遞給函式的是什麼資訊
接受帶有引數名的引數,組成乙個字典
def
person
(name, age,
**kw)
:print
('name: '
+name,
'age: '
+str
(age)
,'kw: '
+str
(kw)
)person(
'monica',18
)person(
'monica',19
, city=
'beijing'
)person(
'monica',20
, city=
'beijing'
, job=
'teacher'
)
name: monica age:
18 kw:
name: monica age:
19 kw:
name: monica age:
20 kw:
**形參kw 中的兩個 * 讓python建立乙個名為kw的空字典,並將所有的鍵值對都封裝到這個字典當中。
7、組合使用
def
person
(name, age, height=
170,
*args,
**kw)
:print
('name: '
+name,
'age: '
+str
(age)
,'args: '
+str
(args)
,'kw: '
+str
(kw)
)person(
'monica',15
)person(
'monica',16
,180
)person(
'monica',17
,'a'
,'b'
)person(
'monica',18
, city=
'beijing'
)person(
'monica'
, height=
160, age=19)
person(
'monica',20
,'a'
,'b'
,'c'
, city=
'beijing'
, job=
'teacher'
)
name: monica age:
15 args:
() kw:
name: monica age:
16 args:
() kw:
name: monica age:
17 args:
('b'
,) kw:
name: monica age:
18 args:
() kw:
name: monica age:
19 args:
() kw:
name: monica age:
20 args:
('b'
,'c'
) kw:
Python函式引數傳遞的幾種形式
莫聽穿林打葉聲,何妨吟嘯且徐行。竹杖芒鞋輕勝馬,誰怕?一蓑煙雨任平生。位置傳參 實際呼叫引數 實參 的對應關係與形式引數 形參 的對應關係是按位置來依次對應的。def fx a,b,c pass fx 1,2,3 序列傳參 在函式呼叫過程中,用 將序列拆解 或收集 後按位置進行傳遞的傳參方式,def...
python中函式引數傳遞的幾種方法
2008 06 19 13 06 48 python中函式引數的傳遞是通過 賦值 來傳遞的。但這條規則只回答了函式引數傳遞的 戰略問題 並沒有回答 戰術問題 也就說沒有回答怎麼賦值的問題。函式引數的使用可以分為兩個方面,一是函式引數如何定義,二是函式在呼叫時的引數如何解析的。而後者又是由前者決定的。...
python中函式引數傳遞的幾種方法
python中函式引數的傳遞是通過 賦值 來傳遞的。但這條規則只回答了函式引數傳遞的 戰略問題 並沒有回答 戰術問題 也就說沒有回答怎麼賦值的問題。函式引數的使用可以分為兩個方面,一是函式引數如何定義,二是函式在呼叫時的引數如何解析的。而後者又是由前者決定的。函式引數的定義有四種形式 1.f arg...