真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

勢函數(shù)分類python的簡單介紹

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

1. 不同類型的參數(shù)簡述

成都創(chuàng)新互聯(lián)公司成立于2013年,先為赤壁等服務建站,赤壁等地企業(yè),進行企業(yè)商務咨詢服務。為赤壁企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

#這里先說明python函數(shù)調(diào)用得語法為:

復制代碼

代碼如下:

func(positional_args,

keyword_args,

*tuple_grp_nonkw_args,

**dict_grp_kw_args)

#為了方便說明,之后用以下函數(shù)進行舉例

def test(a,b,c,d,e):

print a,b,c,d,e

舉個例子來說明這4種調(diào)用方式得區(qū)別:

復制代碼

代碼如下:

#

#positional_args方式

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

1 2 3 4 5

#這種調(diào)用方式的函數(shù)處理等價于

a,b,c,d,e = 1,2,3,4,5

print a,b,c,d,e

#

#keyword_args方式

test(a=1,b=3,c=4,d=2,e=1)

1 3 4 2 1

#這種處理方式得函數(shù)處理等價于

a=1

b=3

c=4

d=2

e=1

print a,b,c,d,e

#

#*tuple_grp_nonkw_args方式

x = 1,2,3,4,5

test(*x)

1 2 3 4

5

#這種方式函數(shù)處理等價于

復制代碼

代碼如下:

a,b,c,d,e = x

print

a,b,c,d,e

#特別說明:x也可以為dict類型,x為dick類型時將鍵傳遞給函數(shù)

y

{'a': 1,

'c': 6, 'b': 2, 'e': 1, 'd': 1}

test(*y)

a c b e d

#

#**dict_grp_kw_args方式

y

{'a': 1, 'c': 6, 'b': 2, 'e': 1, 'd': 1}

test(**y)

1 2 6

1 1

#這種函數(shù)處理方式等價于

a = y['a']

b = y['b']

... #c,d,e不再贅述

print

a,b,c,d,e

2.

不同類型參數(shù)混用需要注意的一些細節(jié)

接下來說明不同參數(shù)類型混用的情況,要理解不同參數(shù)混用得語法需要理解以下幾方面內(nèi)容.

首先要明白,函數(shù)調(diào)用使用參數(shù)類型必須嚴格按照順序,不能隨意調(diào)換順序,否則會報錯. 如 (a=1,2,3,4,5)會引發(fā)錯誤,;

(*x,2,3)也會被當成非法.

其次,函數(shù)對不同方式處理的順序也是按照上述的類型順序.因為#keyword_args方式和**dict_grp_kw_args方式對參數(shù)一一指定,所以無所謂順序.所以只需要考慮順序賦值(positional_args)和列表賦值(*tuple_grp_nonkw_args)的順序.因此,可以簡單理解為只有#positional_args方式,#*tuple_grp_nonkw_args方式有邏輯先后順序的.

最后,參數(shù)是不允許多次賦值的.

舉個例子說明,順序賦值(positional_args)和列表賦值(*tuple_grp_nonkw_args)的邏輯先后關系:

復制代碼

代碼如下:

#只有在順序賦值,列表賦值在結果上存在羅輯先后關系

#正確的例子1

x =

{3,4,5}

test(1,2,*x)

1 2 3 4 5

#正確的例子2

test(1,e=2,*x)

1 3 4 5 2

#錯誤的例子

test(1,b=2,*x)

Traceback (most recent call

last):

File "stdin", line 1, in module

TypeError: test()

got multiple values for keyword argument 'b'

#正確的例子1,處理等價于

a,b = 1,2 #順序參數(shù)

c,d,e = x #列表參數(shù)

print a,b,c,d,e

#正確的例子2,處理等價于

a = 1 #順序參數(shù)

e = 2 #關鍵字參數(shù)

b,c,d = x #列表參數(shù)

#錯誤的例子,處理等價于

a = 1 #順序參數(shù)

b = 2 #關鍵字參數(shù)

b,c,d = x

#列表參數(shù)

#這里由于b多次賦值導致異常,可見只有順序參數(shù)和列表參數(shù)存在羅輯先后關系

函數(shù)聲明區(qū)別

理解了函數(shù)調(diào)用中不同類型參數(shù)得區(qū)別之后,再來理解函數(shù)聲明中不同參數(shù)得區(qū)別就簡單很多了.

1. 函數(shù)聲明中的參數(shù)類型說明

函數(shù)聲明只有3種類型, arg, *arg , **arg 他們得作用和函數(shù)調(diào)用剛好相反.

調(diào)用時*tuple_grp_nonkw_args將列表轉換為順序參數(shù),而聲明中的*arg的作用是將順序賦值(positional_args)轉換為列表.

調(diào)用時**dict_grp_kw_args將字典轉換為關鍵字參數(shù),而聲明中**arg則反過來將關鍵字參數(shù)(keyword_args)轉換為字典.

特別提醒:*arg

和 **arg可以為空值.

以下舉例說明上述規(guī)則:

復制代碼

代碼如下:

#arg, *arg和**arg作用舉例

def

test2(a,*b,**c):

print a,b,c

#

#*arg 和

**arg可以不傳遞參數(shù)

test2(1)

1 () {}

#arg必須傳遞參數(shù)

test2()

Traceback (most recent call last):

File "stdin", line 1,

in module

TypeError: test2() takes at least 1 argument (0 given)

#

#*arg將順positional_args轉換為列表

test2(1,2,[1,2],{'a':1,'b':2})

1 (2, [1, 2], {'a': 1, 'b': 2})

{}

#該處理等價于

a = 1 #arg參數(shù)處理

b = 2,[1,2],{'a':1,'b':2} #*arg參數(shù)處理

c =

dict() #**arg參數(shù)處理

print a,b,c

#

#**arg將keyword_args轉換為字典

test2(1,2,3,d={1:2,3:4}, c=12, b=1)

1 (2, 3) {'c': 12, 'b': 1, 'd': {1: 2, 3:

4}}

#該處理等價于

a = 1 #arg參數(shù)處理

b= 2,3 #*arg參數(shù)處理

#**arg參數(shù)處理

c =

dict()

c['d'] = {1:2, 3:4}

c['c'] = 12

c['b'] = 1

print

a,b,c

2. 處理順序問題

函數(shù)總是先處理arg類型參數(shù),再處理*arg和**arg類型的參數(shù).

因為*arg和**arg針對的調(diào)用參數(shù)類型不同,所以不需要考慮他們得順序.

復制代碼

代碼如下:

def test2(a,*b,**c):

print

a,b,c

test2(1, b=[1,2,3], c={1:2, 3:4},a=1)

Traceback (most

recent call last):

File "stdin", line 1, in

module

TypeError: test2() got multiple values for keyword argument

'a'

#這里會報錯得原因是,總是先處理arg類型得參數(shù)

#該函數(shù)調(diào)用等價于

#處理arg類型參數(shù):

a = 1

a = 1

#多次賦值,導致異常

#處理其他類型參數(shù)

...

print a,b,c

def foo(x,y):

... def bar():

... print

x,y

... return bar

...

#查看func_closure的引用信息

a =

[1,2]

b = foo(a,0)

b.func_closure[0].cell_contents

[1, 2]

b.func_closure[1].cell_contents

b()

[1, 2] 0

#可變對象仍然能被修改

a.append(3)

b.func_closure[0].cell_contents

[1, 2, 3]

b()

[1, 2, 3] 0

python函數(shù)和方法區(qū)別

python中函數(shù)和方法的區(qū)別:

首先,從分類的角度來分析。

(1)函數(shù)的分類:

內(nèi)置函數(shù):python內(nèi)嵌的一些函數(shù)。

匿名函數(shù):一行代碼實現(xiàn)一個函數(shù)功能。

遞歸函數(shù)

自定義函數(shù):根據(jù)自己的需求,來進行定義函數(shù)。

(2)方法的分類:

普通方法:直接用self調(diào)用的方法。

私有方法:__函數(shù)名,只能在類中被調(diào)用的方法。

屬性方法:@property,將方法偽裝成為屬性,讓代碼看起來更合理。

特殊方法(雙下劃線方法):以__init__為例,是用來封裝實例化對象的屬性,只要是實例化對象就一定會執(zhí)行__init方法,如果對象子類中沒有則會尋找父類(超類),如果父類(超類)也沒有,則直接繼承object(python 3.x)類,執(zhí)行類中的__init__方法。

類方法:通過類名的調(diào)用去操作公共模板中的屬性和方法。

靜態(tài)方法:不用傳入類空間、對象的方法, 作用是保證代碼的一致性,規(guī)范性,可以完全獨立類外的一個方法,但是為了代碼的一致性統(tǒng)一的放到某個模塊(py文件)中。

其次,從作用域的角度來分析:

(1)函數(shù)作用域:從函數(shù)調(diào)用開始至函數(shù)執(zhí)行完成,返回給調(diào)用者后,在執(zhí)行過程中開辟的空間會自動釋放,也就是說函數(shù)執(zhí)行完成后,函數(shù)體內(nèi)部通過賦值等方式修改變量的值不會保留,會隨著返回給調(diào)用者后,開辟的空間會自動釋放。

(2)方法作用域:通過實例化的對象進行方法的調(diào)用,調(diào)用后開辟的空間不會釋放,也就是說調(diào)用方法中對變量的修改值會一直保留。

最后,調(diào)用的方式不同。

(1)函數(shù):通過“函數(shù)名()”的方式進行調(diào)用。

(2)方法:通過“對象.方法名”的方式進行調(diào)用。

class Foo(object): ? ?def func(self): ? ? ? ?pass#實例化obj = Foo()# 執(zhí)行方式一:調(diào)用的func是方法obj.func() #func 方法# 執(zhí)行方式二:調(diào)用的func是函數(shù)Foo.func(123) # 函數(shù)

python類和函數(shù)的區(qū)別

類,class,用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。

函數(shù),是組織好的,可重復使用的,用來實現(xiàn)單一,或相關聯(lián)功能的代碼段。

函數(shù)能提高應用的模塊性,和代碼的重復利用率。你已經(jīng)知道python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫作用戶自定義函數(shù)。

python語言中類和函數(shù)的區(qū)別

1、規(guī)則不同

類是一種引用數(shù)據(jù)類型,類似于byte、short、int(char)、long、float、double等基本數(shù)據(jù)類型;

函數(shù)必須聲明后才可以被調(diào)用,調(diào)用格式為:函數(shù)名(實參)調(diào)用時函數(shù)名后的小括號中的實參必須和聲明函數(shù)時的函數(shù)括號中的形參個數(shù)相同。

2、主體不同

類是面向對象程序設計實現(xiàn)信息封裝的基礎;

函數(shù)是指一段在一起的、可以做某一件事的子程序。

3、特點不同

類是一種用戶定義的引用數(shù)據(jù)類型,也稱類類型,每個類包含數(shù)據(jù)說明和一組操作數(shù)據(jù)或者傳遞消息的函數(shù),類的實例稱為對象;

函數(shù)分為全局函數(shù)、全局靜態(tài)函數(shù),在類中還可以定義構造函數(shù)、析構函數(shù)、拷貝構造函數(shù)、成員函數(shù)、友元函數(shù)、運算符重載函數(shù)、內(nèi)聯(lián)函數(shù)等。

python函數(shù)有哪些

1、print()函數(shù):打印字符串;

2、raw_input()函數(shù):從用戶鍵盤捕獲字符;

3、len()函數(shù):計算字符長度;

4、format()函數(shù):實現(xiàn)格式化輸出;

5、type()函數(shù):查詢對象的類型;

6、int()函數(shù)、float()函數(shù)、str()函數(shù)等:類型的轉化函數(shù);

7、id()函數(shù):獲取對象的內(nèi)存地址;

8、help()函數(shù):Python的幫助函數(shù);

9、s.islower()函數(shù):判斷字符小寫;

10、s.sppace()函數(shù):判斷是否為空格;

11、str.replace()函數(shù):替換字符;

12、import()函數(shù):引進庫;

13、math.sin()函數(shù):sin()函數(shù);

14、math.pow()函數(shù):計算次方函數(shù);

15、os.getcwd()函數(shù):獲取當前工作目錄;

16、listdir()函數(shù):顯示當前目錄下的文件;

17、time.sleep()函數(shù):停止一段時間;

18、random.randint()函數(shù):產(chǎn)生隨機數(shù);

19、range()函數(shù):返回一個列表,打印從1到100;

20、file.read()函數(shù):讀取文件返回字符串;

21、file.readlines()函數(shù):讀取文件返回列表;

22、file.readline()函數(shù):讀取一行文件并返回字符串;

23、split()函數(shù):用什么來間隔字符串;

24、isalnum()函數(shù):判斷是否為有效數(shù)字或字符;

25、isalpha()函數(shù):判斷是否全為字符;

26、isdigit()函數(shù):判斷是否全為數(shù)字;

27、 lower()函數(shù):將數(shù)據(jù)改成小寫;

28、upper()函數(shù):將數(shù)據(jù)改成大寫;

29、startswith(s)函數(shù):判斷字符串是否以s開始的;

30、endwith(s)函數(shù):判斷字符串是否以s結尾的;

31、file.write()函數(shù):寫入函數(shù);

32、file.writeline()函數(shù):寫入文件;

33、abs()函數(shù):得到某數(shù)的絕對值;

34、file.sort()函數(shù):對書數(shù)據(jù)排序;

35、tuple()函數(shù):創(chuàng)建一個元組;

36、find()函數(shù):查找 返回的是索引;

37、dict()函數(shù):創(chuàng)建字典;

38、clear()函數(shù):清楚字典中的所有項;

39、copy()函數(shù):復制一個字典,會修改所有的字典;

40、 get()函數(shù):查詢字典中的元素。

…………


網(wǎng)頁標題:勢函數(shù)分類python的簡單介紹
當前網(wǎng)址:http://weahome.cn/article/dseiohp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部