原创 Python __setitem__()、__getitem__()、__delitem__() (十一)

__xxxitem__:使用 [''] 的方式操作屬性時被調用 __setitem__:每當屬性被賦值的時候都會調用該方法,因此不能再該方法內賦值 self.name = value 會死循環 __getitem__:當訪問不存在的屬性時

原创 Python subprocess注意問題

最近寫了個腳本,需要執行第三方程序,並根據程序輸出判斷執行情況,當程序執行時間過長時kill該進程。因此選用了subprocess模塊。 process = subprocess.Popen(self.cmd,stdin = subpro

原创 Python 值類型 引用類型 和 深拷貝 淺拷貝 (九)

值類型:對象本身不允許修改,比如字符串,數值,元組引用類型:對象本身可以修改,比如列表,字典等 我們對字符串,數值的修改實際上是讓變量指向了一個新的對象 a = 10 print id(a) a = 20 print id(a)輸出:33

原创 Python __setattr__()、__getattr__()、__delattr__() (十)

第一次接觸這幾個方法時,是使用pymongo的時候。pymongo經常會使用['']或"."來獲取數據庫或集合對象。 __xxxattr__:使用  '.' 的方式操作屬性時被調用 __setattr__:每當屬性被賦值的時候都會調用該方

原创 Python 經典類和新式類 super用法 (四)

在Python2.x的2.2以上版本中,新式類是繼承object的類。 經典類的MRO(基類搜索順序)算法是深度優先。 新式類的MRO算法是C3算法。 經典類 class A:pass class B:pass class C(B):

原创 內聯,外聯,全聯結,交叉聯結

內聯:(只顯示兩邊同時符合子句條件的條目) select id,user_name.name,user_info.age,user_info.sex from user_name inner join user_info on u

原创 Python __iter__()迭代器 (十三)

__iter__():迭代器,生成迭代對象時調用,返回值必須是對象自己,然後for可以循環調用next方法 next():每一次for循環都調用該方法(必須存在) class A(object): def __init__(sel

原创 Python Signal 信號 (二十一)

常用信號類型SIGINT 終止進程 中斷進程,不可通過signal.signal()捕捉(相當於Ctrl+C) SIGTERM 終止進程 軟件終止信號,可通過signal.s

原创 Python DeprecationWarning 類型錯誤

升級pymongo模塊到3.x的時候,產生了下面警告:DeprecationWarning: update is deprecated. Use replace_one, update_one or up

原创 Python HTML編碼解碼

>>> import HTMLParser >>> h = HTMLParser.HTMLParser() >>> h.unescape("姓名:") u'\u5