Phthon十五 Python內容補充

2021-08-30 23:43:25 字數 2322 閱讀 4201

1.特殊的方法舉例:

__init__(self,...) 這個方法在新建物件恰好要被返回使用之前被呼叫。

__del__(self) 恰好在物件要被刪除之前呼叫。

__str__(self) 在我們對物件使用print語句或是使用str()的時候呼叫。

__lt__(self,other) 當使用 小於 運算子(<)的時候呼叫。類似地,對於所有的運算子(+,>等等)都有特殊的方法。

__getitem__(self,key) 使用x[key]索引操作符的時候呼叫。

__len__(self) 對序列物件使用內建的len()函式的時候呼叫。

2.單語句塊:

>>> flag = true

>>> if flag: print 'yes'

...yes

注意:(1)不建議使用,使用恰當的縮排,可以很方便地新增乙個額外的語句。

(2)在使用互動模式的python直譯器的時候,它會通過恰當地改變提示符來幫助你輸入語句。在上面這個例子中,當你輸入了關鍵字if之後,python直譯器把提示符改變為...以表示語句還沒有結束。在這種情況下,我們按回車鍵用來確認語句已經完整了。然後,python完成整個語句的執行,並且返回原來的提示符並且等待下一句輸入。

3.列表綜合:可以從乙個已有的列表匯出乙個新的列表,原來的列表沒有變化

listone = [2, 3, 4]

listtwo = [2*i for i in listone if i > 2]

print listtwo

輸出:[6,8]

4.在函式中接收元組和列表:

>>> def powersum(power, *args):

... '''return the sum of each argument raised to specified power.'''

... total = 0

... for i in args:

... total += pow(i, power)

... return total

...>>> powersum(2, 3, 4)

25>>> powersum(2, 10)

100

說明:在args變數前有*字首,所有多餘的函式引數都會作為乙個元組儲存在args中。如果是**字首,多餘的引數則會被認為是乙個字典的鍵/值對。

5.lambda形式:

#!/usr/bin/python

# filename: lambda.py

def make_repeater(n):

return lambda s: s*n

twice = make_repeater(2)

print twice('word')

print twice(5)

輸出:$ python lambda.py

wordword

10 說明:我們使用了make_repeater函式在執行時建立新的函式物件,並且返回它。lambda語句用來建立函式物件。本質上,lambda需要乙個引數,後面僅跟單個表示式作為函式體,而表示式的值被這個新建的函式返回.即便是print語句也不能用在lambda形式中,只能使用表示式。

6.exec和eval語句:

exec語句用來執行儲存在字串或檔案中的python語句

>>> exec 'print "hello world"'

hello world

eval語句用來計算儲存在字串中的有效python表示式

>>> eval('2*3')

7.assert語句:宣告某個條件是真的,如果是假的,會引發乙個assertionerror。

>>> mylist = ['item']

>>> assert len(mylist) >= 1

>>> mylist.pop()

'item'

>>> assert len(mylist) >= 1

traceback (most recent call last):

file "", line 1, in ?

assertionerror

8.repr函式:

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

>>> i =

>>> `i`

"['item']"

>>> repr(i)

"['item']"

基本上,repr函式和反引號用來獲取物件的可列印的表示形式。可以通過定義類的__repr__方法來控制你的物件在被repr函式呼叫的時候返回的內容。

學習Python 十五

學習位址 前面工作許多事情耽誤了繼續學習python,都去學習其他知識了,現在重新撿起 程序池import multiprocessing as mul def f x return x 2 pool mul.pool 5 rel pool.map f,1,2,3,4,5,6,7,8,9,10 pr...

內點法python 內點法

文字理解 內點法屬於約束優化演算法。約束優化演算法的基本思想是 通過引入效用函式的方法將約束優化問題轉換成無約束問題,再利用優化迭代過程不斷地更新效用函式,以使得演算法收斂。內點法 罰函式法的一種 的主要思想是 在可行域的邊界築起一道很高的 圍牆 當迭代點靠近邊界時,目標函式徒然增大,以示懲罰,阻止...

phthon中的上下文管理器(python3 4)

1.什麼是上下文管理器。以下 引用自python3.4api中關於with宣告 語句上下管理器2部分的解釋。上下文管理器是乙個物件,它定義了在執行with語句時要建立的執行時上下文。通常使用with語句呼叫,但也可以通過直接呼叫它們的方法來使用。上下文管理器的典型用途包括儲存和恢復各種全域性狀態 鎖...