小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

初識Python(六)

 四兩哥 2011-08-24

特殊的方法

在類中有一些特殊的方法具有特殊的意義,比如__init____del__方法,它們的重要性我們已經(jīng)學(xué)習(xí)過了。

一般說來,特殊的方法都被用來模仿某個行為。例如,如果你想要為你的類使用x[key]這樣的索引操作(就像列表和元組一樣),那么你只需要實現(xiàn)__getitem__()方法就可以了。想一下,Python就是對list類這樣做的!

名稱說明
__init__(self,...)這個方法在新建對象恰好要被返回使用之前被調(diào)用。
__del__(self)恰好在對象要被刪除之前調(diào)用。
__str__(self)在我們對對象使用print語句或是使用str()的時候調(diào)用。
__lt__(self,other)當(dāng)使用 小于 運算符(<)的時候調(diào)用。類似地,對于所有的運算符(+,>等等)都有特殊的方法。
__getitem__(self,key)使用x[key]索引操作符的時候調(diào)用。
__len__(self)對序列對象使用內(nèi)建的len()函數(shù)的時候調(diào)用。

列表綜合

通過列表綜合,可以從一個已有的列表導(dǎo)出一個新的列表。例如,你有一個數(shù)的列表,而你想要得到一個對應(yīng)的列表,使其中所有大于2的數(shù)都是原來的2倍。對于這種應(yīng)用,列表綜合是最理想的方法。

>>> a=[2,3,4,5]

>>> b=[2*i for i in a if i>2]

>>> print b

[6, 8, 10]

在函數(shù)中接收元組和列表

當(dāng)要使函數(shù)接收元組或字典形式的參數(shù)的時候,有一種特殊的方法,它分別使用***前綴。

由于在args變量前有*前綴,所有多余的函數(shù)參數(shù)都會作為一個元組存儲在args中。如果使用的是**前綴,多余的參數(shù)則會被認(rèn)為是一個字典的鍵/值對。

>>> def say(*a):

b=()

for i in range(0,len(a)):

print a[i],

>>> say(2,3,4)

2 3 4

>>> def say(*a):

print a

>>> say(2,3,4)

(2, 3, 4)

lambda形式

lambda語句被用來創(chuàng)建新的函數(shù)對象,并且在運行時返回該函數(shù)

>>> def say(n):

return lambda s:s*n

>>> func=say(2)    運行say()時返回了lambda創(chuàng)建的新函數(shù)s:s*2給func,此時func就是一個函數(shù),其參數(shù)是s  計算的是s*2

>>> print func

<function <lambda> at 0x00B5D1B0>

>>> print func(5)

10

exec語句與eval語句

exec語句用來執(zhí)行儲存在字符串或文件中的Python語句。例如,我們可以在運行時生成一個包含Python代碼的字符串,然后使用exec語句執(zhí)行這些語句。

>>> exec "print func(5)"   接上面的lambda形式

10

eval語句用來計算存儲在字符串中的有效Python表達(dá)式。

>>> eval("6>5")

True

assert語句

assert語句用來聲明某個條件是真的。例如,如果你非常確信某個你使用的列表中至少有一個元素,而你想要檢驗這一點,并且在它非真的時候引發(fā)一個錯誤,那么assert語句是應(yīng)用在這種情形下的理想語句。當(dāng)assert語句失敗的時候,會引發(fā)一個AssertionError。

>>> mylist = ['item']

>>> assert len(mylist) >= 1

>>> mylist.pop()

'item'

>>> assert len(mylist) >= 1

Traceback (most recent call last):

  File "<stdin>", line 1, in ?

AssertionError

repr函數(shù)

repr函數(shù)用來取得對象的規(guī)范字符串表示。你可以通過定義類的__repr__方法來控制你的對象在被repr函數(shù)調(diào)用的時候返回的內(nèi)容。

>>> a={'1':1,'2':2,'3':3}

>>> repr(a)

"{'1': 1, '3': 3, '2': 2}"

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多