Python設計模式之觀察者模式執行個體

關於設計模式中的觀察者模式,定義如下(維基百科):觀察者模式(有時又被稱為發布/訂閱模式)是軟體設計模式的一種。在此種模式中,一個目標物件管理所有相依於它的觀察者物件,並且在它本身的狀態改變時主動發出通知。這通常透過呼叫各觀察者所提供的方法來實現。此種模式通常被用來實作事件處理系統。簡單來說,一個被觀察者有很多觀察者,被觀察者的狀態的改變會引起所有觀察者的響應操作。那麼我們用Python2.7來實現觀察者模式。Python中的集合set集合(set),類似於列表(list),但是它沒有重複的元素

python實現360皮膚按鈕控制項樣本

代碼如下:#!/usr/bin/python #-*-coding:utf-8-*-from PyQt4.QtGui import *from PyQt4.QtCore import *from PyQt4.Qt import *class ChangeSkinWidget(QWidget): def __init__(self,parent = None): super(ChangeSkinWidget,self).__init__(parent) self.setFixedSize(1

python抓取網頁圖片樣本(python爬蟲)

代碼如下:#-*- encoding: utf-8 -*-'''Created on 2014-4-24@author: Leon Wong'''import urllib2import urllibimport reimport timeimport osimport uuid#擷取二級頁面urldef findUrl2(html): re1 = r'http://tuchong.com/\d+/\d+/|http://\w+(? url2list = re.findall(re1

python監控網卡流量並使用graphite繪圖的樣本

代碼如下:#!/usr/bin/env pythonimport sys,timefrom socket import socketdef read_interface(in_file): with file(in_file) as f: return f.readlines()[2:]def set_interface(inter_msg): dic={} for i in xrange(len(inter_msg)):

爬山演算法簡介和Python實現執行個體

一、爬山法簡介爬山法(climbing method)是一種最佳化演算法,其一般從一個隨機的解開始,然後逐步找到一個最優解(局部最優)。 假定所求問題有多個參數,我們在通過爬山法逐步獲得最優解的過程中可以依次分別將某個參數的值增加或者減少一個單位。例如某個問題的解需要使用3個整數類型的參數x1、x2、x3,開始時將這三個參數設值為(2,2,-2),將x1增加/減少1,得到兩個解(1,2,-2), (3, 2,-2);將x2增加/減少1,得到兩個解(2,3, -2),(2,1,

Python的ORM架構SQLObject入門執行個體

SQLObject和SQLAlchemy都是Python語言下的ORM(對象關係映射)解決方案,其中SQLAlchemy被認為是Python下事實上的ORM標準。當然,兩者都很優秀。一、安裝 代碼如下:sudo pip install SQLObject使用SQLObject操作mysql時候報錯ImportError: No module named MySQLdb,那便安裝MySQLdb: 代碼如下:sudo pip install MySQL-python沒想到又報錯了:

django自訂Field實現一個欄位儲存以逗號分隔的字串

實現了在一個欄位儲存以逗號分隔的字串,返回一個相應的列表 代碼如下:from django import formsfrom django.db import modelsfrom django.utils.text import capfirstfrom django.core import exceptionsclass MultiSelectFormField(forms.MultipleChoiceField): widget =

Python設計模式之代理模式執行個體

翻牆常用的方式就是使用代理(Proxy),其基本過程如下:瀏覽器Proxy 伺服器伺服器如果瀏覽器請求不到伺服器,或者伺服器無法響應瀏覽器,我們可以設定將瀏覽器的請求傳遞給Proxy 伺服器,Proxy 伺服器將請求轉寄給伺服器。然後,Proxy 伺服器將伺服器的響應內容傳遞給瀏覽器。當然,Proxy 伺服器在得到請求或者響應內容的時候,本身也可以做些處理,例如緩衝靜態內容以加速,或者說提取請求內容或者響應內容做些正當或者不正當的分析。這種翻牆方式,就是設計模式中代理模式(Proxy

python發布模組的步驟分享

1.為模組nester建立檔案夾nester,其中包含:nester.py(模組檔案): 代碼如下:"""這是"nester.py"模組,提供了一個名為print_lol()函數, 函數作用是列印列表,氣質包含嵌套列表"""def print_lol(the_list): """這個函數取了一個位置參數,名為"the_list",可以是任何python列表 所指定的列表中的每一個資料項目會遞迴地輸出到螢幕上,各資料項目佔一行""" for each_item in

python和pyqt實現360的CLable控制項

代碼如下: #!/usr/bin/python #-*-coding:utf-8-*-from PyQt4.QtGui import *from PyQt4.QtCore import *from PyQt4.Qt import *class CLabel(QWidget): signalLabelPress = pyqtSignal() def __init__(self,parent = None): super(CLabel,self).__init__(parent)

pyqt4教程之實現半透明的天氣預報介面樣本

代碼如下:# -*- coding: cp936 -*-import sysimport urllib2import jsonfrom PyQt4 import QtCore, QtGuiclass MyWindow( QtGui.QLCDNumber,QtGui.QWidget): def __init__(self, parent=None): super(MyWindow,self).__init__(parent)

python實現網頁連結提取的方法分享

代碼如下:#encoding:utf-8import socketimport htmllib,formatterdef open_socket(host,servname): s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) port=socket.getservbyname(servname) s.connect((host,port)) return

python使用cookie庫操儲存cookie詳解

Cookie用於伺服器實現會話,使用者登入及相關功能時進行狀態管理。要在使用者瀏覽器上安裝cookie,HTTP伺服器向HTTP響應添加類似以下內容的HTTP前序: 代碼如下:Set-Cookie:session=8345234;expires=Sun,15-Nov-2013 15:00:00

tornado捕獲和處理404錯誤的方法

Tornado 文檔中提到但是這樣只能捕獲到handlers中列出的路徑請求中的錯誤。如果只定義了(r"/hello", HelloHandler) 一條規則,那麼只能捕獲到 /hello/other,這樣的未定義路徑請求,而像/he、/helloworld、/he/other這樣的會直接顯示Tornado預設的404錯誤頁面,而不會顯示自訂的錯誤頁面。解決方案很簡單只需要在路由規則的最後加一條(r".*",

python串連mysql並提交mysql事務樣本

代碼如下:# -*- coding: utf-8 -*-import sysimport MySQLdbreload(sys)sys.setdefaultencoding('utf-8')class DB(object): def __init__(self,host='127.0.0.1',port=3306,user='root',passwd='123',database=''): self.__host=host self.__port=port self.__user=user

使用python分析git log日誌樣本

用git來管理工程的開發,git log是非常有用的‘曆史'資料,需求就是來自這裡,我們希望能對git log有一個定製性強的過濾。此段指令碼就是在完成這種類型的任務。對於一個repo所有branch中的commit,指令碼將會把message中存在BUG ID的一類commits給提取整理出來,並提供了額外的search_key, 用於定製過濾。 代碼如下:# -*- coding: utf-8 -*-# created by vince67 Feb.2014#

python益智遊戲計算漢諾塔問題樣本

漢諾塔(又稱河內塔)問題是源於印度一個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石砫子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。 代碼如下:times = 0def test(num,a,b,c): globaltimes ifnum==1: print (a,b) times+=1 else:

Python中針對函數處理的特殊方法

很多語言都提供了對參數或變數進行處理的機制,作為靈活的Python,提供了一些針對函數處理的特殊方法filter(function, sequence): 對sequence中的item依次執行function(item),將執行結果為True的item組成一個List/String/Tuplemap(function, sequence) : 對sequence中的item依次執行function(item),見執行結果組成一個Listreduce(function, sequence,

python爬蟲教程之爬取百度貼吧並下載的樣本

測試url:http://tieba.baidu.com/p/27141123322?pn=begin 1end 4 代碼如下:import string ,urllib2def baidu_tieba(url,begin_page,end_page): for i in range(begin_page, end_page+1): sName = string.zfill(i,5)+ '.html' print '正在下載第' + str(i) +

python檔案和目錄操作方法大全(含執行個體)

一、python中對檔案、檔案夾操作時經常用到的os模組和shutil模組常用方法。1.得到當前工作目錄,即當前Python指令碼工作的目錄路徑:

總頁數: 2974 1 .... 2733 2734 2735 2736 2737 .... 2974 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.