成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python類中函數(shù)參數(shù) python函數(shù)的參數(shù)類型

Python參數(shù)類型

上一期我們學(xué)習(xí)參數(shù)傳遞怎么傳遞,也了解了參數(shù)的幾種類型。

創(chuàng)新互聯(lián)公司是一家從事企業(yè)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、成都網(wǎng)站制作、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)制作的專業(yè)網(wǎng)絡(luò)公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)超過千家。

首先,我們再來回顧一下,形參和實(shí)參:

形參是在定義函數(shù)時(shí)定義的,放在函數(shù)名后面的圓括號里,可為空

實(shí)參是調(diào)用函數(shù)時(shí)為形參傳入具體的參數(shù)值

簡單總結(jié)一下,誰調(diào)用函數(shù),誰就負(fù)責(zé)傳入?yún)?shù)。

好吶,本期我們來詳細(xì)學(xué)習(xí)函數(shù)幾種參數(shù)類型,大綱如下:

python函數(shù)的參數(shù)名是無意義的,Python允許在調(diào)用函數(shù)時(shí)通過通過名字來傳入?yún)?shù)值。

位置參數(shù):按照形參位置傳入的參數(shù)

調(diào)用函數(shù)時(shí),實(shí)參默認(rèn)按位置順序傳遞的。同時(shí)實(shí)參個(gè)數(shù)也要和形參匹配

舉一個(gè)小栗子

如果實(shí)參的個(gè)數(shù)與形參不匹配時(shí),調(diào)用函數(shù)運(yùn)行就會(huì)報(bào)錯(cuò)

Python中,形參與調(diào)用函數(shù)緊密聯(lián)系在一起的。

關(guān)鍵字參數(shù):調(diào)用函數(shù)時(shí),使形參名稱來傳遞參數(shù),形式為“形參名=實(shí)參”

關(guān)鍵字參數(shù),又叫命名參數(shù),傳遞時(shí)無需考慮參數(shù)位置和順序

舉一個(gè)小栗子

默認(rèn)參數(shù):定義函數(shù)時(shí),我們可以為形參提前設(shè)置具體的值。

在定義函數(shù)時(shí),默認(rèn)參數(shù)要放到位置等其他參數(shù)后面

在調(diào)用函數(shù)時(shí),默認(rèn)參數(shù)是可選的。如果傳入新值,則會(huì)覆蓋默認(rèn)值

舉一個(gè)小栗子

注意,默認(rèn)值不能位于位置參數(shù)前面,否則程序會(huì)報(bào)錯(cuò)誤

不定長參數(shù)又名可變參數(shù)。

不定長參數(shù)指的是可變數(shù)量的參數(shù),分兩種情況:

如果不定長參數(shù)后面,可以新增參數(shù)嗎?

我們通過例子來看,會(huì)發(fā)生什么?

運(yùn)行上面的程序,Python解釋器會(huì)報(bào)錯(cuò)

原因是,形參a已經(jīng)是不定長參數(shù),我們調(diào)用的test(2,3,4)傳入的三個(gè)實(shí)參,系統(tǒng)自動(dòng)把它們屬于形參a的值,形參b 和形參c就等于沒有值傳入,這時(shí)候系統(tǒng)就認(rèn)為,調(diào)用函數(shù)的對象,參數(shù)沒有傳夠。

為了解決這一報(bào)錯(cuò),python引入了 強(qiáng)制命名參數(shù)

規(guī)定,調(diào)用不定參數(shù)后面有跟位置參數(shù)的函數(shù)時(shí),傳入給位置參數(shù)時(shí),必須要強(qiáng)制命名參進(jìn)行傳參。

逆向參數(shù)收集針對的對象傳入函數(shù)的實(shí)參

調(diào)用函數(shù)時(shí),如果實(shí)參是元組,列表或者字典,通過在實(shí)參前面加入星號,可以自動(dòng)把元素進(jìn)行隔開,然后再轉(zhuǎn)入給函數(shù)進(jìn)行處理

舉一個(gè)小栗子

本期,我們詳細(xì)學(xué)習(xí)了參數(shù)幾種類型,為后面我們學(xué)習(xí)函數(shù),打好基礎(chǔ)。

實(shí)踐是檢驗(yàn)真理的過程,大家多動(dòng)手練習(xí)練習(xí),會(huì)有不一樣的奇妙旅程~

好吶,以上是本期內(nèi)容,歡迎大佬們評論區(qū)指正~

Python的函數(shù)和參數(shù)

parameter 是函數(shù)定義的參數(shù)形式

argument 是函數(shù)調(diào)用時(shí)傳入的參數(shù)實(shí)體。

對于函數(shù)調(diào)用的傳參模式,一般有兩種:

此外,

也是關(guān)鍵字傳參

python的函數(shù)參數(shù)定義一般來說有五種: 位置和關(guān)鍵字參數(shù)混合 , 僅位置參數(shù) , 僅關(guān)鍵字參數(shù) , 可變位置參數(shù) , 可變關(guān)鍵字參數(shù) 。其中僅位置參數(shù)的方式僅僅是一個(gè)概念,python語法中暫時(shí)沒有這樣的設(shè)計(jì)。

通常我們見到的函數(shù)是位置和關(guān)鍵字混合的方式。

既可以用關(guān)鍵字又可以用位置調(diào)用

這種方式的定義只能使用關(guān)鍵字傳參的模式

f(*some_list) 與 f(arg1, arg2, ...) (其中some_list = [arg1, arg2, ...])是等價(jià)的

網(wǎng)絡(luò)模塊request的request方法的設(shè)計(jì)

多數(shù)的可選參數(shù)被設(shè)計(jì)成可變關(guān)鍵字參數(shù)

有多種方法能夠?yàn)楹瘮?shù)定義輸出:

非?;逎?/p>

如果使用可變對象作為函數(shù)的默認(rèn)參數(shù),會(huì)導(dǎo)致默認(rèn)參數(shù)在所有的函數(shù)調(diào)用中被共享。

例子1:

addItem方法的data設(shè)計(jì)了一個(gè)默認(rèn)參數(shù),使用不當(dāng)會(huì)造成默認(rèn)參數(shù)被共享。

python里面,函數(shù)的默認(rèn)參數(shù)被存在__default__屬性中,這是一個(gè)元組類型

例子2:

在例子1中,默認(rèn)參數(shù)是一個(gè)列表,它是mutable的數(shù)據(jù)類型,當(dāng)它寫進(jìn) __defauts__屬性中時(shí),函數(shù)addItem的操作并不會(huì)改變它的id,相當(dāng)于 __defauts__只是保存了data的引用,對于它的內(nèi)存數(shù)據(jù)并不關(guān)心,每次調(diào)用addItem,都可以修改 addItem.__defauts__中的數(shù)據(jù),它是一個(gè)共享數(shù)據(jù)。

如果默認(rèn)參數(shù)是一個(gè)imutable類型,情況將會(huì)不一樣,你無法改變默認(rèn)參數(shù)第一次存入的值。

例子1中,連續(xù)調(diào)用addItem('world') 的結(jié)果會(huì)是

而不是期望的

Python函數(shù)的參數(shù)類型

Python函數(shù)的參數(shù)類型主要包括必選參數(shù)、可選參數(shù)、可變參數(shù)、位置參數(shù)和關(guān)鍵字參數(shù),本文介紹一下他們的定義以及可變數(shù)據(jù)類型參數(shù)傳遞需要注意的地方。

必選參數(shù)(Required arguments)是必須輸入的參數(shù),比如下面的代碼,必須輸入2個(gè)參數(shù),否則就會(huì)報(bào)錯(cuò):

其實(shí)上面例子中的參數(shù) num1和num2也屬于關(guān)鍵字參數(shù),比如可以通過如下方式調(diào)用:

執(zhí)行結(jié)果:

可選參數(shù)(Optional arguments)可以不用傳入函數(shù),有一個(gè)默認(rèn)值,如果沒有傳入會(huì)使用默認(rèn)值,不會(huì)報(bào)錯(cuò)。

位置參數(shù)(positional arguments)根據(jù)其在函數(shù)定義中的位置調(diào)用,下面是pow()函數(shù)的幫助信息:

x,y,z三個(gè)參數(shù)的的順序是固定的,并且不能使用關(guān)鍵字:

輸出:

在上面的pow()函數(shù)幫助信息中可以看到位置參數(shù)后面加了一個(gè)反斜杠 / ,這是python內(nèi)置函數(shù)的語法定義,Python開發(fā)人員不能在python3.8版本之前的代碼中使用此語法。但python3.0到3.7版本可以使用如下方式定義位置參數(shù):

星號前面的參數(shù)為位置參數(shù)或者關(guān)鍵字參數(shù),星號后面是強(qiáng)制關(guān)鍵字參數(shù),具體介紹見強(qiáng)制關(guān)鍵字參數(shù)。

python3.8版本引入了強(qiáng)制位置參數(shù)(Positional-Only Parameters),也就是我們可以使用反斜杠 / 語法來定義位置參數(shù)了,可以寫成如下形式:

來看下面的例子:

python3.8運(yùn)行:

不能使用關(guān)鍵字參數(shù)形式賦值了。

可變參數(shù) (varargs argument) 就是傳入的參數(shù)個(gè)數(shù)是可變的,可以是0-n個(gè),使用星號( * )將輸入?yún)?shù)自動(dòng)組裝為一個(gè)元組(tuple):

執(zhí)行結(jié)果:

關(guān)鍵字參數(shù)(keyword argument)允許將任意個(gè)含參數(shù)名的參數(shù)導(dǎo)入到python函數(shù)中,使用雙星號( ** ),在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè)字典。

執(zhí)行結(jié)果:

上面介紹的參數(shù)可以混合使用:

結(jié)果:

注意:由于傳入的參數(shù)個(gè)數(shù)不定,所以當(dāng)與普通參數(shù)一同使用時(shí),必須把帶星號的參數(shù)放在最后。

強(qiáng)制關(guān)鍵字參數(shù)(Keyword-Only Arguments)是python3引入的特性,可參考:。 使用一個(gè)星號隔開:

在位置參數(shù)一節(jié)介紹過星號前面的參數(shù)可以是位置參數(shù)和關(guān)鍵字參數(shù)。星號后面的參數(shù)都是強(qiáng)制關(guān)鍵字參數(shù),必須以指定參數(shù)名的方式傳參,如果強(qiáng)制關(guān)鍵字參數(shù)沒有設(shè)置默認(rèn)參數(shù),調(diào)用函數(shù)時(shí)必須傳參。

執(zhí)行結(jié)果:

也可以在可變參數(shù)后面命名關(guān)鍵字參數(shù),這樣就不需要星號分隔符了:

執(zhí)行結(jié)果:

在Python對象及內(nèi)存管理機(jī)制中介紹了python中的參數(shù)傳遞屬于對象的 引用傳遞 (pass by object reference),在編寫函數(shù)的時(shí)候需要特別注意。

先來看個(gè)例子:

執(zhí)行結(jié)果:

l1 和 l2指向相同的地址,由于列表可變,l1改變時(shí),l2也跟著變了。

接著看下面的例子:

結(jié)果:

l1沒有變化!為什么不是[1, 2, 3, 4]呢?

l = l + [4]表示創(chuàng)建一個(gè)“末尾加入元素 4“的新列表,并讓 l 指向這個(gè)新的對象,l1沒有進(jìn)行任何操作,因此 l1 的值不變。如果要改變l1的值,需要加一個(gè)返回值:

結(jié)果:

下面的代碼執(zhí)行結(jié)果又是什么呢?

執(zhí)行結(jié)果:

和第一個(gè)例子一樣,l1 和 l2指向相同的地址,所以會(huì)一起改變。這個(gè)問題怎么解決呢?

可以使用下面的方式:

也可以使用淺拷貝或者深度拷貝,具體使用方法可參考Python對象及內(nèi)存管理機(jī)制。這個(gè)問題在Python編程時(shí)需要特別注意。

本文主要介紹了python函數(shù)的幾種參數(shù)類型:必選參數(shù)、可選參數(shù)、可變參數(shù)、位置參數(shù)、強(qiáng)制位置參數(shù)、關(guān)鍵字參數(shù)、強(qiáng)制關(guān)鍵字參數(shù),注意他們不是完全獨(dú)立的,比如必選參數(shù)、可選參數(shù)也可以是關(guān)鍵字參數(shù),位置參數(shù)可以是必選參數(shù)或者可選參數(shù)。

另外,python中的參數(shù)傳遞屬于對象的 引用傳遞 ,在對可變數(shù)據(jù)類型進(jìn)行參數(shù)傳遞時(shí)需要特別注意,如有必要,使用python的拷貝方法。

參考文檔:

--THE END--

python 函數(shù)參數(shù) 是什么意思

Python 函數(shù)定義以及參數(shù)傳遞

1.函數(shù)定義

#形如def func(args...):

doSomething123

以關(guān)鍵字def 開頭,后面是函數(shù)名和參數(shù)下面是函數(shù)處理過程。

舉例:

def add( a, b ):

return a+b12

參數(shù)可以設(shè)定默認(rèn)值,如:

def add( a, b=10 ): #注意:默認(rèn)值參數(shù)只會(huì)運(yùn)算一次

return a+b12

默認(rèn)值參數(shù)只會(huì)運(yùn)算一次是什么意思?

def func( a, b=[] ): #b的默認(rèn)值指向一個(gè)空的列表,每次不帶默認(rèn)值都會(huì)指向這塊內(nèi)存

b.append(a) return b

print(func(1))#向默認(rèn)的空列表里加入元素1 ,默認(rèn)列表里已經(jīng)是[1]print(func(2))#向默認(rèn)的列表里加入元素2,默認(rèn)列表里已經(jīng)是[1,2]print(func(3,[]))#向b指向的空列表里加入元素1 ,默認(rèn)列表里還是[1,2]print(func(4))#向默認(rèn)的列表里加入元素4,默認(rèn)列表里已經(jīng)是[1,2,4]'''

結(jié)果:

[1]

[1, 2]

[3]

[1, 2, 4]

'''12345678910111213141516

這下明白為什么默認(rèn)參數(shù)只計(jì)算一次了吧,函數(shù)參數(shù)不傳遞時(shí)默認(rèn)值總是指向固定的內(nèi)存空間,就是第一次計(jì)算的空間。

2.參數(shù)傳遞

def func(a, b):

print('a=%d, b=%d' % (a,b) )12

在使用函數(shù)時(shí)可以如下方式,結(jié)果都是相同的

func(10,20) #不使用參數(shù)名,需要按參數(shù)順序傳遞func(a=10,b=20) #使用參數(shù)名可以不按順序傳遞func(b=20,a=10)#結(jié)果:a=10, b=20a=10, b=20a=10, b=201234567

如果函數(shù)定義形式如下方式:

def func(*args): #這種定義會(huì)把傳遞的參數(shù)包成元組

print(args,type(args))

func(10,20)#結(jié)果:#(10, 20) class 'tuple'1234567

舉一個(gè)和上述過程相反的例子:

def func(a,b):

print('a=%d, b=%d' % (a,b) )

a = (10, 20)

func(*a) #在調(diào)用函數(shù)使用`*`則會(huì)把元組解包成單個(gè)變量按順序傳入函數(shù)#結(jié)果:a=10, b=20123456

總結(jié):*號在定義函數(shù)參數(shù)時(shí),傳入函數(shù)的參數(shù)會(huì)轉(zhuǎn)換成元組,如果 *號在調(diào)用時(shí)則會(huì)把元組解包成單個(gè)元素。

另一種定義:

def func(**kw):#使用**定義參數(shù)會(huì)把傳入?yún)?shù)包裝成字典dict

print(kw, type(kw) )

func(a=10,b=20)#這種函數(shù)在使用時(shí)必須指定參數(shù)值,使用key=value這種形式#結(jié)果:{'b': 20, 'a': 10} class 'dict'12345

相反的例子:

def func(a,b):

print('a=%d, b=%d' % (a,b) )

d = {'a':10, 'b':20 }

func(**d) #在調(diào)用時(shí)使用**會(huì)把字典解包成變量傳入函數(shù)。12345

def func(*args, **kw):#這種形式的定義代表可以接受任意類型的參數(shù)

print(args,kw )12

總結(jié):**號在定義函數(shù)參數(shù)時(shí),傳入函數(shù)的參數(shù)會(huì)轉(zhuǎn)換成字典,如果 **號在調(diào)用時(shí)則會(huì)把字典解包成單個(gè)元素。

lambda表達(dá)式

lambda表達(dá)式就是一種簡單的函數(shù)

形如 f = lambda 參數(shù)1,參數(shù)2: 返回的計(jì)算值

例如:

add = lambda x,y: x+y

print(add(1,2))'''

結(jié)果:3

'''12345

python-函數(shù)可變參數(shù)類型

python中的函數(shù),大多需要配置參數(shù),以下是幾種函數(shù)的參數(shù)類型:

1.必備參數(shù):以正確的順序、個(gè)數(shù)傳入函數(shù)。調(diào)用時(shí)的參數(shù)情況要和聲明時(shí)一樣。最常用的情況。

def tplink(a,b):

c=a+b+b

return c?

tplink(4,2)

2.關(guān)鍵字參數(shù):使用關(guān)鍵字參數(shù)允許函數(shù)調(diào)用時(shí)參數(shù)的順序和聲明時(shí)不一致,因?yàn)閜ython解析器會(huì)在調(diào)用函數(shù)時(shí),用參數(shù)名匹配參數(shù)值。

def tplink(age1,age2):

ageall=age1+age2+age2

return ageall

tplink(age2=4,age1=2)

3.默認(rèn)參數(shù):默認(rèn)某個(gè)參數(shù)的取值

def tplink(age1,age2=5):

ageall=age1+age2+age2

return ageall

tplink(age1=4)

4.不定長參數(shù):在聲明時(shí)并不確定 調(diào)用時(shí)的參數(shù)數(shù)量。這種情況,可以用不定長參數(shù)進(jìn)行解決,具體操作是在參數(shù)名前用*。

但不能和 關(guān)鍵字參數(shù)并用。一般在正常參數(shù)arg之后。

*args、**kwargs的定義:

這兩個(gè)都是python中的不定長參數(shù),又稱為可變參數(shù)。

*args 表示任何多個(gè)無名參數(shù),它是一個(gè) tuple ;

**kwargs 表示關(guān)鍵字參數(shù),它是一個(gè)dict。

同時(shí)使用 * args和 ** kwargs 時(shí),必須 * args參數(shù)列要在 ** kwargs前。且都在arg之后。

函數(shù)在調(diào)用時(shí),會(huì)根據(jù)順序,看是否放進(jìn) *args 或者 **kwargs中。

具體可根據(jù)實(shí)際情況使用,可以 更方便靈活的接收信息。

python怎么向類中的函數(shù)傳遞參數(shù)

Python中函數(shù)參數(shù)的傳遞是通過“賦值”來傳遞的。但這條規(guī)則只回答了函數(shù)參數(shù)傳遞的“戰(zhàn)略問題”,并沒有回答“戰(zhàn)術(shù)問題”,也就說沒有回答怎么賦值的問題。函數(shù)參數(shù)的使用可以分為兩個(gè)方面,一是函數(shù)參數(shù)如何定義,二是函數(shù)在調(diào)用時(shí)的參數(shù)如何解析的。而后者又是由前者決定的。函數(shù)參數(shù)的定義有四種形式:

1. F(arg1,arg2,...)

2. F(arg2=value,arg3=value...)

3. F(*arg1)

4. F(**arg1)

第1 種方式是最“傳統(tǒng)”的方式:一個(gè)函數(shù)可以定義不限個(gè)數(shù)參數(shù),參數(shù)(形式參數(shù))放在跟在函數(shù)名后面的小括號中,各個(gè)參數(shù)之間以逗號隔開。用這種方式定義的函數(shù)在調(diào)用的時(shí)候也必須在函數(shù)名后的小括號中提供相等個(gè)數(shù)的值(實(shí)際參數(shù)),不能多也不能少,而且順序還必須相同。也就是說形參和實(shí)參的個(gè)數(shù)必須一致,而且想給形參1的值必須是實(shí)參中的第一位,形參與實(shí)參之間是一一對應(yīng)的關(guān)系,即“形參1=實(shí)參1 形參2=實(shí)參2...”。很明顯這是一種非常不靈活的形式。比如:"def addOn(x,y): return x + y",這里定義的函數(shù)addOn,可以用addOn(1,2)的形式調(diào)用,意味著形參x將取值1,主將取值2。addOn(1,2,3)和addOn (1)都是錯(cuò)誤的形式。

第2種方式比第1種方式,在定義的時(shí)候已經(jīng)給各個(gè)形參定義了默認(rèn)值。因此,在調(diào)用這種函數(shù)時(shí),如果沒有給對應(yīng)的形式參數(shù)傳遞實(shí)參,那么這個(gè)形參就將使用默認(rèn)值。比如:“def addOn(x=3,y=5): return x + y”,那么addOn(6,5)的調(diào)用形式表示形參x取值6,y取值5。此外,addOn(7)這個(gè)形式也是可以的,表示形參x取值7,y取默認(rèn)值5。這時(shí)候會(huì)出現(xiàn)一個(gè)問題,如果想讓x取默認(rèn)值,用實(shí)參給y賦值怎么辦?前面兩種調(diào)用形式明顯就不行了,這時(shí)就要用到Python中函數(shù)調(diào)用方法的另一大絕招 ──關(guān)健字賦值法??梢杂胊ddOn(y=6),這時(shí)表示x取默認(rèn)值3,而y取值6。這種方式通過指定形式參數(shù)可以實(shí)現(xiàn)可以對形式參數(shù)進(jìn)行“精確攻擊”,一個(gè)副帶的功能是可以不必遵守形式參數(shù)的前后順序,比如:addOn(y=4,x=6),這也是可以的。這種通過形式參數(shù)進(jìn)行定點(diǎn)賦值的方式對于用第1種方式定義的函數(shù)也是適用的。

上面兩種方式定義的形式參數(shù)的個(gè)數(shù)都是固定的,比如定義函數(shù)的時(shí)候如果定義了5個(gè)形參,那么在調(diào)用的時(shí)候最多也只能給它傳遞5個(gè)實(shí)參。但是在實(shí)際編程中并不能總是確定一個(gè)函數(shù)會(huì)有多少個(gè)參數(shù)。第3種方式就是用來應(yīng)對這種情況的。它以一個(gè)*加上形參名的方式表示,這個(gè)函數(shù)實(shí)際參數(shù)是不一定的,可以是零個(gè),也可以是N個(gè)。不管是多少個(gè),在函數(shù)內(nèi)部都被存放在以形參名為標(biāo)識符的tuple中。比如:

對這個(gè)函數(shù)的調(diào)用addOn() addOn(2) addOn(3,4,5,6)等等都是可以的。

與第3種方式類似,形參名前面加了兩個(gè)*表示,參數(shù)在函數(shù)內(nèi)部將被存放在以形式名為標(biāo)識符的dictionary中。這時(shí)候調(diào)用函數(shù)必須采用key1=value1、key2=value2...的形式。比如:

1. def addOn(**arg):

2. sum = 0

3. if len(arg) == 0: return 0

4. else:

5. for x in arg.itervalues():

6. sum += x

7. return sum

那么對這個(gè)函數(shù)的調(diào)用可以用addOn()或諸如addOn(x=4,y=5,k=6)等的方式調(diào)用。

上面說了四種函數(shù)形式定義的方式以及他們的調(diào)用方式,是分開說的,其實(shí)這四種方式可以組合在一起形成復(fù)雜多樣的形參定義形式。在定義或調(diào)用這種函數(shù)時(shí),要遵循以下規(guī)則:

1. arg=value必須在arg后

2. *arg必須在arg=value后

3. **arg必須在*arg后

在函數(shù)調(diào)用過程中,形參賦值的過程是這樣的:

首先按順序把“arg”這種形式的實(shí)參給對應(yīng)的形參

第二,把“arg=value”這種形式的實(shí)參賦值給形式

第三,把多出來的“arg”這種形式的實(shí)參組成一個(gè)tuple給帶一個(gè)星號的形參

第四,把多出來的“key=value”這種形式的實(shí)參轉(zhuǎn)為一個(gè)dictionary給帶兩個(gè)星號的形參。

例子:

1. def test(x,y=5,*a,**b):

2. print x,y,a,b

就這么一個(gè)簡單函數(shù),來看看下面對這個(gè)函數(shù)調(diào)用會(huì)產(chǎn)生什么結(jié)果:

test(1) === 1 5 () {}

test(1,2) === 1 2 () {}

test(1,2,3) === 1 2 (3,) {}

test(1,2,3,4) === 1 2 (3,4)

test(x=1) === 1 5 () {}

test(x=1,y=1) === 1 1 () {}

test(x=1,y=1,a=1) === 1 1 () {'a':1}

test(x=1,y=1,a=1,b=1) === 1 1 () {'a':1,'b':1}

test(1,y=1) === 1 1 () {}

test(1,2,y=1) === 出錯(cuò),說y給賦了多個(gè)值

test(1,2,3,4,a=1) === 1 2 (3,4) {'a':1}

test(1,2,3,4,k=1,t=2,o=3) === 1 2 (3,4) {'k':1,'t':2,'o':3}

網(wǎng)站標(biāo)題:python類中函數(shù)參數(shù) python函數(shù)的參數(shù)類型
文章出自:http://jinyejixie.com/article20/dodheco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、搜索引擎優(yōu)化網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
康保县| 郓城县| 聂拉木县| 高碑店市| 商洛市| 新巴尔虎左旗| 西城区| 册亨县| 准格尔旗| 台山市| 岳普湖县| 赣榆县| 遂平县| 靖边县| 达拉特旗| 仪陇县| 延吉市| 阿拉善右旗| 夹江县| 施秉县| 随州市| 木兰县| 辽阳县| 高清| 同心县| 恩平市| 盐山县| 泽库县| 攀枝花市| 高安市| 河北区| 利川市| 鄂伦春自治旗| 崇明县| 左云县| 措勤县| 四平市| 吉安市| 射洪县| 荃湾区| 和硕县|