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語句呼叫,但也可以通過直接呼叫它們的方法來使用。上下文管理器的典型用途包括儲存和恢復各種全域性狀態 鎖...