欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python兩個參數(shù)函數(shù),python 兩個參數(shù)

python self 為什么是兩個參數(shù)

Python中默認(rèn)參數(shù)self的理解

創(chuàng)新互聯(lián)公司專注于阜寧網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供阜寧營銷型網(wǎng)站建設(shè),阜寧網(wǎng)站制作、阜寧網(wǎng)頁設(shè)計、阜寧網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造阜寧網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供阜寧網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

類的方法與普通的函數(shù)只有一個特別的區(qū)別——它們必須有一個額外的第一個參數(shù)名稱,但是在調(diào)用這個方法的時候你不為這個參數(shù)賦值,Python會提供這個值。這個特別的變量指對象本身,按照慣例它的名稱是self。

雖然你可以給這個參數(shù)任何名稱,但是強(qiáng)烈建議你使用self這個名稱——其他名稱都是不贊成你使用的。使用一個標(biāo)準(zhǔn)的名稱有很多優(yōu)點(diǎn)——你的程序讀者可以迅速識別它,如果使用self的話,還有些IDE(集成開發(fā)環(huán)境)也可以幫助你。

給C++/Java/C#程序員的注釋Python中的self等價于C++中的self指針和Java、C#中的this參考。

你一定很奇怪Python如何給self賦值以及為何你不需要給它賦值。舉一個例子會使此變得清晰。假如你有一個類稱為MyClass和這個類的一個實(shí)例MyObject。當(dāng)你調(diào)用這個對象的方法MyObject.method(arg1, arg2)的時候,這會由Python自動轉(zhuǎn)為MyClass.method(MyObject, arg1, arg2)——這就是self的原理了。

這也意味著如果你有一個不需要參數(shù)的方法,你還是得給這個方法定義一個self參數(shù)。

聲明add()方法時,若不加self,則提示

TypeError: add() takes exactly 2 arguments (3 given)

File "D:\PythonWorkplace\PythonDemo\Tet.py", line 15, in module

test.add(1,3)

錯誤。

拓展一下:

self在Python里不是關(guān)鍵字。self代表當(dāng)前對象的地址。self能避免非限定調(diào)用造成的全局變量。

self是一種習(xí)慣,如上面的程序,把sayHi(self)換成sayHi(fles),同樣可以得到正確的輸出。

python中定義函數(shù)fun(a,n),輸入a和n兩個參數(shù),輸出a的n次方 。

#include stdio.h

int fun(int a,int n)

{

int t;

for(t=1;n;n--)

? t*=a;

return t;

}

int main()

{

int a,n;

scanf("%d%d",a,n);

printf("%d\n",fun(a,n));

return 0;

}

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

python 的函數(shù)參數(shù)類型分為4種:

1.位置參數(shù):調(diào)用函數(shù)時根據(jù)函數(shù)定義的參數(shù)位置來傳遞參數(shù),位置參數(shù)也可以叫做必要參數(shù),函數(shù)調(diào)用時必須要傳的參數(shù)。

當(dāng)參數(shù)滿足函數(shù)必要參數(shù)傳參的條件,函數(shù)能夠正常執(zhí)行:

add(1,2) #兩個參數(shù)的順序必須一一對應(yīng),且少一個參數(shù)都不可以

當(dāng)我們運(yùn)行上面的程序,輸出:

當(dāng)函數(shù)需要兩個必要參數(shù),但是調(diào)用函數(shù)只給了一個參數(shù)時,程序會拋出異常

add(1)

當(dāng)我們運(yùn)行上面的程序,輸出:

當(dāng)函數(shù)需要兩個必要參數(shù),但是調(diào)用函數(shù)只給了三個參數(shù)時,程序會拋出異常

add(1,2,3)

當(dāng)我們運(yùn)行上面的程序,輸出

2.關(guān)鍵字參數(shù):用于函數(shù)調(diào)用,通過“鍵-值”形式加以指定??梢宰尯瘮?shù)更加清晰、容易使用,同時也清除了參數(shù)的順序需求。

add(1,2) # 這種方式傳參,必須按順序傳參:x對應(yīng)1,y對應(yīng):2

add(y=2,x=1) #以關(guān)健字方式傳入?yún)?shù)(可以不按順序)

正確的調(diào)用方式

add(x=1, y=2)

add(y=2, x=1)

add(1, y=2)

以上調(diào)用方式都是允許的,能夠正常執(zhí)行

錯誤的調(diào)用方式

add(x=1, 2)

add(y=2, 1)

以上調(diào)用都會拋出SyntaxError 異常

上面例子可以看出:有位置參數(shù)時,位置參數(shù)必須在關(guān)鍵字參數(shù)的前面,但關(guān)鍵字參數(shù)之間不存在先后順序的

3.默認(rèn)參數(shù):用于定義函數(shù),為參數(shù)提供默認(rèn)值,調(diào)用函數(shù)時可傳可不傳該默認(rèn)參數(shù)的值,所有位置參數(shù)必須出現(xiàn)在默認(rèn)參數(shù)前,包括函數(shù)定義和調(diào)用,有多個默認(rèn)參數(shù)時,調(diào)用的時候,既可以按順序提供默認(rèn)參數(shù),也可以不按順序提供部分默認(rèn)參數(shù)。當(dāng)不按順序提供部分默認(rèn)參數(shù)時,需要把參數(shù)名寫上

默認(rèn)參數(shù)的函數(shù)定義

上面示例第一個是正確的定義位置參數(shù)的方式,第二個是錯誤的,因為位置參數(shù)在前,默認(rèn)參數(shù)在后

def add1(x=1,y) 的定義會拋出如下異常

默認(rèn)參數(shù)的函數(shù)調(diào)用

注意:定義默認(rèn)參數(shù)默認(rèn)參數(shù)最好不要定義為可變對象,容易掉坑

不可變對象:該對象所指向的內(nèi)存中的值不能被改變,int,string,float,tuple

可變對象,該對象所指向的內(nèi)存中的值可以被改變,dict,list

這里只要理解一下這個概念就行或者自行百度,后續(xù)會寫相關(guān)的專題文章講解

舉一個簡單示例

4.可變參數(shù)區(qū)別:定義函數(shù)時,有時候我們不確定調(diào)用的時候會多少個參數(shù),j就可以使用可變參數(shù)

可變參數(shù)主要有兩類:

*args: (positional argument) 允許任意數(shù)量的可選位置參數(shù)(參數(shù)),將被分配給一個元組, 參數(shù)名前帶*,args只是約定俗成的變量名,可以替換其他名稱

**kwargs:(keyword argument) 允許任意數(shù)量的可選關(guān)鍵字參數(shù),,將被分配給一個字典,參數(shù)名前帶**,kwargs只是約定俗成的變量名,可以替換其他名稱

*args 的用法

args 是用來傳遞一個非鍵值對的可變數(shù)量的參數(shù)列表給函數(shù)

語法是使用 符號的數(shù)量可變的參數(shù); 按照慣例,通常是使用arg這個單詞,args相當(dāng)于一個變量名,可以自己定義的

在上面的程序中,我們使用* args作為一個可變長度參數(shù)列表傳遞給add()函數(shù)。 在函數(shù)中,我們有一個循環(huán)實(shí)現(xiàn)傳遞的參數(shù)計算和輸出結(jié)果。

還可以直接傳遞列表或者數(shù)組的方式傳遞參數(shù),以數(shù)組或者列表方式傳遞參數(shù)名前面加(*) 號

理解* * kwargs

**kwargs 允許你將不定長度的鍵值對, 作為參數(shù)傳遞給函數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動組裝為一個dict

下篇詳細(xì)講解 *args, **kwargs 的參數(shù)傳遞和使用敬請關(guān)注

python中兩個函數(shù)間參數(shù)傳遞問題

def?plus(a,b):

z?=?a?+?1

c?=?b?+?5

return?(z,c)

(q,w)?=?plus(1,2)

plud(q,w)

##我這里假設(shè)a=1,b=2

##首先plus(1,2),得到z=2,c=7,通過return?讓(q,w)=(z,c)的值,然后plud(q,w)即可實(shí)現(xiàn)將z,c的值傳遞給下一個函數(shù)

python中一個函數(shù)有兩個參數(shù)a、b ,a是列表,b是一個數(shù)字,找出a列表中兩數(shù)之和等于b,打印出這些數(shù)

def shili(a,b):

answer=[]

for x in a:

if x=b/2:

y=b-x

if y in a :

answer.append((x,y))

return answer

a=[1,2,3,4,5,6,7,8,9]

b=9

c=shili(a,b)

print(c)

#輸出結(jié)果:[(1, 8), (2, 7), (3, 6), (4, 5)]

本文名稱:python兩個參數(shù)函數(shù),python 兩個參數(shù)
文章分享:http://chinadenli.net/article22/hegijc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、微信小程序、小程序開發(fā)、Google、網(wǎng)站維護(hù)、App開發(fā)

廣告

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

小程序開發(fā)