建造者模式,也是一種創(chuàng)建新對象的設(shè)計方法,和C++中的虛函數(shù)很類似,但是用到了python自身的虛基類ABCMeta。1.應(yīng)用場景:某個類中的函數(shù)較多,且實現(xiàn)比較復(fù)雜,很多時候需要繼承的子類重載或者重新定義邏輯;2.背景基礎(chǔ):由于用到python中虛函數(shù),需要了解abc模塊中的ABCMeta和python中類創(chuàng)建對象時的__metaclass__屬性含義。一般地,在某個類中如果定義__metaclass__=something時,簡單地說是,創(chuàng)建對象時,會
系統(tǒng) 2019-09-27 17:52:24 1796
#!/usr/bin/envpython#coding=utf-8#------------------------------------------------------#Name:nginx日志分析腳本#Purpose:此腳本只用來分析nginx的訪問日志#Version:1.0#Author:LEO#Created:2013-05-07#Modified:2013-05-07#Copyright:(c)LEO2013#--------------
系統(tǒng) 2019-09-27 17:52:05 1796
前言或許你已經(jīng)用過裝飾器,它的使用方式非常簡單但理解起來困難(其實真正理解的也很簡單),想要理解裝飾器,你需要懂點函數(shù)式編程的概念,python函數(shù)的定義以及函數(shù)調(diào)用的語法規(guī)則等,雖然我沒法把裝飾器變得簡單,但是我希望可以通過下面的步驟讓你由淺入深明白裝飾器是什么。假定你擁有最基本的Python知識,本文闡述的東西可能對那些在工作中經(jīng)常接觸Python的人有很大的幫助。1、函數(shù)(Functions)在Python里,函數(shù)是用def關(guān)鍵字后跟一個函數(shù)名稱和一
系統(tǒng) 2019-09-27 17:51:47 1796
目錄1.分支結(jié)構(gòu)1.1初步介紹1.2使用案例1.3練習(xí)2.循環(huán)結(jié)構(gòu)1.1初步介紹1.2使用案例1.分支結(jié)構(gòu)1.1初步介紹至今,我們所寫的Python代碼都是順序執(zhí)行,但是有時候在代碼中是需要進(jìn)行邏輯判斷的,比如用戶輸入用戶名和密碼,輸入正確則驗證通過,否則即驗證失敗。這個時候就會產(chǎn)生兩個分支,而且兩個分支只會有一條分支會走下去。當(dāng)然,還有很多類似的場景,我們將這種結(jié)果稱為"分支結(jié)構(gòu)"或“選擇結(jié)構(gòu)”。語法格式:ifxxx1:事情1elifxxx2:事情2el
系統(tǒng) 2019-09-27 17:51:46 1796
工作中用到了C/S模型,所做的也無非是給服務(wù)器發(fā)數(shù)據(jù),但開發(fā)階段會遇到程序自身的回環(huán)測試,需要用到簡單的服務(wù)端以便驗證數(shù)據(jù)發(fā)送的正確性。寫軟件用C++,跑測試用python,這段時間也剛好看go語言,所以都要有demo。以下三組程序?qū)崿F(xiàn)的功能相同,這里一起做下總結(jié)。一、C++實現(xiàn)Boost.Asio是一個跨平臺的C++庫,它用現(xiàn)代C++方法為網(wǎng)絡(luò)和底層I/O程序提供了一致的異步I/O模型。為了跨平臺,我用boost庫實現(xiàn),具體如下。服務(wù)端代碼:復(fù)制代碼代碼
系統(tǒng) 2019-09-27 17:51:43 1796
pika生產(chǎn)者程序大致步驟:1.建立連接connection,需要認(rèn)證的調(diào)用認(rèn)證參數(shù)2.創(chuàng)建通道channel當(dāng)然channel可以池化,這樣可以重復(fù)使用3.聲明隊列指定隊列屬性,一旦指定屬性不能修改,例如是否持久化,名稱4.聲明交換機(jī)交換機(jī)類型,名稱等,也可以不用聲明,直接使用“”空字符串,默認(rèn)交換機(jī)也可以5.將隊列與交換機(jī)綁定queue_bind6.basic_publish發(fā)送到交換機(jī)指定路由鍵pika消費者程序大致步驟:1.建立連接connecti
系統(tǒng) 2019-09-27 17:51:26 1796
。。。。。。剛看到時,我有一點膚淺的吃驚:python都已經(jīng)沒了明確的數(shù)據(jù)類型概念,竟然還有類。好了,請忽略我的無知。下面我們來看知識點。類的定義首先是類的定義:classname:pass我們能看一下格式,首先是一個普通的class,然后是我們類的名字,冒號后則是類的具體內(nèi)容。而這里的pass并不是我隨便寫的,而是有含義的。當(dāng)我們創(chuàng)建了一個空的類或方法,并且一時半會不想設(shè)計它的內(nèi)容,我們就需要為其加上一個pass來告訴編譯器,這是一個空的類或函數(shù)。繼承p
系統(tǒng) 2019-09-27 17:50:39 1796
1.字符串大小寫轉(zhuǎn)換string.title()#將字符串中所有單詞的首字母以大寫形式顯示string.upper()#將字符串中所有字母轉(zhuǎn)化為大寫字母string.lower()#將字符串中所有字母轉(zhuǎn)化為小寫字母str="helloworld!"print(str.title())HelloWorld!print(str.upper())HELLOWORLD!print(str.lower())helloworld!2.字符拼接python中只用使用'+
系統(tǒng) 2019-09-27 17:50:30 1796
遞歸一個函數(shù)在執(zhí)行過程中一次或多次調(diào)用其本身便是遞歸,就像是俄羅斯套娃一樣,一個娃娃里包含另一個娃娃。遞歸其實是程序設(shè)計語言學(xué)習(xí)過程中很快就會接觸到的東西,但有關(guān)遞歸的理解可能還會有一些遺漏,下面對此方面進(jìn)行更加深入的理解遞歸的分類這里根據(jù)遞歸調(diào)用的數(shù)量分為線性遞歸、二路遞歸與多重遞歸線性遞歸如果一個遞歸調(diào)用最多開始一個其他遞歸調(diào)用,我們稱之為線性遞歸。例如:defbinary_search(data,target,low,high):"""二分查找,對有
系統(tǒng) 2019-09-27 17:50:01 1796
最近寫了一些python3程序,四處能看到bytes類型,而它并不存在于python2中,這也是python3和python2顯著區(qū)別之一。以前在寫python2代碼的時候,經(jīng)常會遇到很多編碼報錯的異常,原因在于python2對unicode的支持不是特別理想。而在python3中,所有編寫的代碼都是unicode,python解析器在運行的時候,內(nèi)部都轉(zhuǎn)換(除非你顯示定義為bytes類型)為unicode,減少了出錯的可能性。在python3中,有兩種字
系統(tǒng) 2019-09-27 17:49:59 1796