python_basic4

pyhton基礎知識 four

特殊的方法

__init__(self,…) 這個方法在新建對象恰好要被返回使用之前被調用。
__del__(self) 恰好在對象要被刪除之前調用。
__str__(self) 在我們對對象使用print語句或是使用str()的時候調用。
__lt__(self,other) 當使用 小於 運算符(<)的時候調用。類似地,對於所有的運算符(+,>等等)都有特殊的方法。
__getitem__(self,key) 使用x[key]索引操作符的時候調用。列表和元組
__len__(self) 對序列對象使用內建的len()函數的時候調用。

列表綜合

listone = [2, 3, 4]
listtwo = [2*i for i in listone if i > 2]
print listtwo   #  [6, 8]

在函數中接收元組和列表

當要使函數接收元組或字典形式的參數的時候,有一種特殊的方法,它分別使用*和**前綴。這種方法在函數需要獲取可變數量的參數的時候特別有用。

>>> def powersum(power, *args):
... '''Return the sum of each argument raised to specified power.'''
... total = 0
... for i in args:
... total += pow(i, power)  #power^i
... return total
...
>>> powersum(2, 3, 4)
25
>>> powersum(2, 10)
100

由於在args變量前有前綴,所有多餘的函數參數都會作爲一個元組存儲在args中。如果使用的是*前綴,多餘的參數則會被認爲是一個字典的鍵/值對。

lambda形式(匿名函數)

lambda語句被用來創建新的函數對象,並且在運行時返回它們。

def make_repeater(n):
    return lambda s: s*n
twice = make_repeater(2)

print twice('word')  #wordword
print twice(5)       #10

print語句也不能用在lambda形式中,只能使用表達式。

exec和eval語句

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

>>> exec 'print "Hello World"'
Hello World

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

>>> eval('2*3')
6

assert語句

assert語句用來聲明某個條件是真的。例如,如果你非常確信某個你使用的列表中至少有一個元素,而你想要檢驗這一點,並且在它非真的時候引發一個錯誤,那麼assert語句是應用在這種情形下的理想語句。當assert語句失敗的時候,會引發一個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函數

repr函數用來取得對象的規範字符串表示。反引號(也稱轉換符)可以完成相同的功能。注意,在大多數時候有eval(repr(object)) == object。

>>> i = []
>>> i.append('item')
>>> `i`
"['item']"
>>> repr(i)
"['item']"

你可以通過定義類的__repr__方法來控制你的對象在被repr函數調用的時候返回的內容。

圖形軟件

使用Python的GUI庫——你需要使用這些庫來用Python語言創建你自己的圖形程序。使用GUI庫和它們的Python綁定

你可以創建你自己的IrfanView、Kuickshow軟件或者任何別的類似的東西。綁定讓你能夠使用Python語言編寫程序,而使用的庫本身是用C、C++或者別的語言編寫的。

the byte of python notes

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章