<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > python的位置參數、默認參數、關(guān)鍵字參數、可變參數區別

python的位置參數、默認參數、關(guān)鍵字參數、可變參數區別

作者: 時(shí)間:2018-07-24 來(lái)源:網(wǎng)絡(luò ) 收藏

一、位置參數

本文引用地址:http://dyxdggzs.com/article/201807/383601.htm

調用函數時(shí)根據函數定義的參數位置來(lái)傳遞參數。

#!/usr/bin/env python

# coding=utf-8

def print_hello(name, sex):

sex_dict = {1: u'先生', 2: u'女士'}

print 'hello %s %s, welcome to python world!' %(name, sex_dict.get(sex, u'先生'))

# 兩個(gè)參數的順序必須一一對應,且少一個(gè)參數都不可以

# print_hello('tanggu', 1)

二、關(guān)鍵字參數

用于函數調用,通過(guò)“鍵-值”形式加以指定??梢宰尯瘮蹈忧逦?、容易使用,同時(shí)也清除了參數的順序需求。

# 以下是用關(guān)鍵字參數正確調用函數的實(shí)例

# print_hello('tanggu', sex=1)

# print_hello(name='tanggu', sex=1)

# print_hello(sex=1, name='tanggu')

# 以下是錯誤的調用方式

# print_hello(1, name='tanggu')

# print_hello(name='tanggu', 1)

# print_hello(sex=1, 'tanggu')

通過(guò)上面的代碼,我們可以發(fā)現:有位置參數時(shí),位置參數必須在關(guān)鍵字參數的前面,但關(guān)鍵字參數之間不存在先后順序的

三、默認參數

用于定義函數,為參數提供默認值,調用函數時(shí)可傳可不傳該默認參數的值(注意:所有位置參數必須出現在默認參數前,包括函數定義和調用)

# 正確的默認參數定義方式--> 位置參數在前,默認參數在后

def print_hello(name, sex=1):

....

# 錯誤的定義方式

def print_hello(sex=1, name):

....

# 調用時(shí)不傳sex的值,則使用默認值1

# print_hello('tanggu')

# 調用時(shí)傳入sex的值,并指定為2

# print_hello('tanggu', 2)

四、可變參數

定義函數時(shí),有時(shí)候我們不確定調用的時(shí)候會(huì )傳遞多少個(gè)參數(不傳參也可以)。此時(shí),可用包裹(packing)位置參數,或者包裹關(guān)鍵字參數,來(lái)進(jìn)行參數傳遞,會(huì )顯得非常方便。

1、包裹位置傳遞

def func(*args):

....

# func()

# func(a)

# func(a, b, c)

我們傳進(jìn)的所有參數都會(huì )被args變量收集,它會(huì )根據傳進(jìn)參數的位置合并為一個(gè)元組(tuple),args是元組類(lèi)型,這就是包裹位置傳遞。

2、包裹關(guān)鍵字傳遞

def func(**kargs):

....

# func(a=1)

# func(a=1, b=2, c=3)

kargs是一個(gè)字典(dict),收集所有關(guān)鍵字參數

五、解包裹參數

*和**,也可以在函數調用的時(shí)候使用,稱(chēng)之為解包裹(unpacking)

1、在傳遞元組時(shí),讓元組的每一個(gè)元素對應一個(gè)位置參數

def print_hello(name, sex):

print name, sex

# args = ('tanggu', '男')

# print_hello(*args)

# tanggu 男

2、在傳遞詞典字典時(shí),讓詞典的每個(gè)鍵值對作為一個(gè)關(guān)鍵字參數傳遞給函數

def print_hello(kargs):

print kargs

# kargs = {'name': 'tanggu', 'sex', u'男'}

# print_hello(**kargs)

# {'name': 'tanggu', 'sex', u'男'}

六、位置參數、默認參數、可變參數的混合使用

基本原則是:先位置參數,默認參數,包裹位置,包裹關(guān)鍵字(定義和調用都應遵循)

def func(name, age, sex=1, *args, **kargs):

print name, age, sex, args, kargs

# func('tanggu', 25, 2, 'music', 'sport', class=2)

# tanggu 25 1 ('music', 'sport') {'class'=2}



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>