Time of Update: 2018-12-04
比如函數:def a(x): def b(y): return x+y return b這個函數最後那個return b沒有括弧但是函數函數運行很正常,當a(2)(3)這樣調用的時候也可以正常計算值,我想的問的是,這裡返回的這個b是什麼呢?應該怎麼理解,而且當a(2)這樣缺少一個參數調用的話也沒用問題,沒有引起異常。應該怎麼理解他這樣寫你看下:這是這種寫法無法將x傳到b裡面去def b(y): return x+ydef a(x):
Time of Update: 2018-12-04
單例模式的核心就是建構函式私人,在類內部new一個私人執行個體,然後提供一個方法可以從類外部調用從而得到該執行個體''''''class Singleton(object): _instance=None def __new__(cls,*args,**kwargs): if not cls._instance: cls._instance=super(Singleton,cls).__new__(cls,*args, **kwargs)
Time of Update: 2018-12-04
在網上看到一個網友的提問:>>> class test(type):... pass... >>> class test1(test):... def __call__(self):... print "I am in call"... >>> class test2(object):... __metaclass__=test1... >>> t=test2()I am
Time of Update: 2018-12-04
isinstance(object, classinfo)Return true if the object argument is an instance of the classinfo argument, or of a (direct or indirect) subclass thereof. Also return true ifclassinfo is a type object and object is an object of that type. Ifobject is
Time of Update: 2018-12-04
eval(str [,globals [,locals ]])函數將字串str當成有效Python運算式來求值,並返回計算結果。同樣地, exec語句將字串str當成有效Python代碼來執行.提供給exec的代碼的名稱空間和exec語句的名稱空間相同.最後,execfile(filename [,globals [,locals ]])函數可以用來執行一個檔案,看下面的例子:>>> eval('3+4')7>>> exec
Time of Update: 2018-12-04
一直用python讀檔案都是文字檔。用的方法是:lines=open('ft.txt')但是前兩天讀一個幾百兆的大檔案的時候,遇到了奇怪的問題,覺得是內容沒有讀完。定位最後讀到的行,用emeditor開啟,發現有一個怪字元“”。編碼是“\x001a”,一查,原來是檔案結束符號。一直鬱悶,奇怪為啥文字檔裡面有檔案結束符,試了好多辦法,都不行,最後經limodou指點,原來這種情況要當成二進位檔案來讀。lines=open('ft.txt','rb')檔案內容如下:abcdefg兩種不同情況的結果如
Time of Update: 2018-12-04
Python中對象方法的定義很怪異,第一個參數一般都命名為self(相當於其它語言的this),用於傳遞對象本身,而在調用的時候則不必顯式傳遞,系統會自動傳遞。舉一個很常見的例子:>>> class Foo:def bar(self, message):print(message)>>> Foo().bar("Hello, World.")Hello,
Time of Update: 2018-12-04
event主要用線上程的通訊中,一個線程沒有得到想要的資源,用event.wait()阻塞。當另一個線程給了相應的資源就用event通知所有的線程(用同一個event)其他的線程在得到之後就可以運行了。#event.pyimport threading class mythread(threading.Thread): def __init__(self,threadname): threading.Thread.__init__(self,name=threadname)
Time of Update: 2018-12-04
包含了關鍵字"yield"的函數就不是普通的函數。當含有這個關鍵字的函數被調用的時候,這個函數在遇到yield的時候會停止運行,並且返回一個迭代器(iterator)。每次請求一個值,就會執行產生的程式碼。直到遇到一個yield或者return。首先,我們先瞭解什麼是迭代器。 lst=[1,2,3,4,5]for i in lst print
Time of Update: 2018-12-04
發信人: N23 (23號), 信區: Python標 題: zz What’s New in Python 2.6 翻譯 (七) -PEP 3101: 改進的字發信站: 水木社區 (Tue Oct 7 17:20:45 2008), 轉信PEP 3101: 改進的字串格式化在Python 3.0中,%操作符通過一個更強的格式化方法format()進行了增強。對str.format()的支援已經被反向移植到了Python 2.6在2.6中,8-bit字串和Unicode字串都有一個forma
Time of Update: 2018-12-04
以下是我的個人理解,如有錯誤,務必指正,不勝感激!首先,我們看getattr,顧名思義,得到屬性。它的全部應該是getattr(object,“attribution”,None),一般情況我們這麼用getattr(object,name)它類似於得到object.attribution的值。 getattr的用法:比如:>>> class test:... cal=1... >>> getattr(test,"cal")1>>>
Time of Update: 2018-12-04
含有yield的函數就是產生器,不是普通的函數。產生器包含有迭代器,“雨果”不明白什麼是產生器和迭代器參見http://blog.csdn.net/xiaofeng_yan/archive/2010/09/27/5910215.aspx下面重點說一下,怎麼看 yield 的傳回值。大家要記住,看yield的值必須在迴圈裡,因為只有在迴圈裡才能使yield傳回值或者具有可迭代的函數裡如列表。比如:def test(lst): try: for
Time of Update: 2018-12-04
第一次用python,不熟悉。有的地方還是記下來的好。1、安裝python和 PIL我的centos6 不知道什麼時候裝了python。[root@foxni /home/lelefox/simple驗證碼/image/font] # pythonPython 2.6.6 (r266:84292, Dec 7 2011, 20:48:22) [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2Type "help", "copyright",
Time of Update: 2018-12-04
轉載:http://ipython.iteye.com/blog/1136931在python這pymmseg-cpp 還是十分方便的! 環境 ubuntu10.04 , python2.65 步驟:1 下載mmseg-cpp的原始碼 http://code.google.com/p/pymmseg-cpp/2 tar -zxf pymmseg-cpp*.tar.gz //解壓後得到pymmseg 目錄 cd pymmseg\mmseg-cpp python
Time of Update: 2018-12-04
文章目錄 GBK decodeEast_Asian_Widthurwid的解決方案
Time of Update: 2018-12-04
轉載:http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c42246121c35b8fd7c714c428896207a52ef0f07bbae616f615466e4c096c957d9bb92282b8d27203541c6171d9152e9911b79d620e118baef5fbcfcab6fcf&p=882a9643d58512a05beace375744cf2
Time of Update: 2018-12-04
轉載:http://www.crifan.com/python_string_with_leading_char_r_u/(1)以r或R開頭的python中的字串表示(非轉義的)原始字串python裡面的字元,如果開頭處有個r,比如:(r’^time/plus/\d{1,2}/$’,
Time of Update: 2018-12-04
原文地址http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html,我挑一些自認為的重點翻譯過來,總之,代碼是寫給人看的,不是寫給機器執行的。留白(一) (1:每個縮排層級增加4個空格; (2:不要使用Tab鍵(我就一直使用Tab鍵,很方便,這條有點不合理); (3:不要混用空格和Tab鍵; (4:函數之間一個空行; (5:類之間兩個空行;留白(二
Time of Update: 2018-12-04
結束添加print然後執行指令碼的低效Debug方式,熟悉GDB的同學應該很容易就接受PDB。官方文檔地址:http://docs.python.org/library/pdb.html。使用PDB的方式有兩種,其中一種是在指令碼中添加代碼,不覺得這種方式比print好在哪裡,所以這種方式此文不表。這裡我們只學習PDB的命令列使用方式。 1)進入命令列Debug模式,python -m pdb myscript.py 2)h:(help)協助 3)w:(where)列印當前執行
Time of Update: 2018-12-04
http://blog.donews.com/limodou/archive/2004/07/15/43755.aspx http://www.zen-cart.cn/forum/topic5363.html http://hi.baidu.com/gylxue/blog/item/9e343b0f450b70e1aa6457fc.html 寫的確實不錯。 以下是ubuntu10.04測試結果:(注意使用 sys.getfilesystemencoding()擷取當前系統編碼,不需要亂猜 ) &