面向?qū)ο蟮木幊陶Z(yǔ)言在寫大型程序的的時(shí)候,往往比面向過(guò)程的語(yǔ)言用起來(lái)更方便,安全。其中原因之一在于:類機(jī)制。類,對(duì)眾多的數(shù)據(jù)進(jìn)行分類,封裝,讓一個(gè)數(shù)據(jù)對(duì)象成為一個(gè)完整的個(gè)體,貼近現(xiàn)實(shí)生活,高度抽象化。但是,python對(duì)類的封裝并不好,因?yàn)樗械膶傩院头椒ǘ际枪_(kāi)的,你可以隨意訪問(wèn)或者寫入,你可以在類的外部對(duì)類的屬性進(jìn)行修改,甚至添加屬性。這的確讓人感到不安。下面就來(lái)總結(jié)一下學(xué)習(xí)后的解決方案。1,使用2個(gè)下劃線前綴隱藏屬性或者方法。__xxx#!/usr/b
系統(tǒng) 2019-09-27 17:38:10 1628
列表有自己的sort方法,其對(duì)列表進(jìn)行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因?yàn)樵M是不可修改的。排序,數(shù)字、字符串按照ASCII,中文按照unicode從小到大排序x=[4,6,2,1,7,9]x.sort()print(x)#[1,2,4,6,7,9]如果需要一個(gè)排序好的副本,同時(shí)保持原有列表不變,怎么實(shí)現(xiàn)呢?x=[4,6,2,1,7,9]y=x[:]y.sort()print(y)#[1,2,4,6,7,9]print(x)#[4,
系統(tǒng) 2019-09-27 17:38:09 1628
在使用google或者baidu搜圖的時(shí)候會(huì)發(fā)現(xiàn)有一個(gè)圖片顏色選項(xiàng),感覺(jué)非常有意思,有人可能會(huì)想這肯定是人為的去劃分的,呵呵,有這種可能,但是估計(jì)人會(huì)累死,開(kāi)個(gè)玩笑,當(dāng)然是通過(guò)機(jī)器識(shí)別的,海量的圖片只有機(jī)器識(shí)別才能做到。那用python能不能實(shí)現(xiàn)這種功能呢?答案是:能利用python的PIL模塊的強(qiáng)大的圖像處理功能就可以做到,下面上代碼:importcolorsysdefget_dominant_color(image):#顏色模式轉(zhuǎn)換,以便輸出rgb顏色
系統(tǒng) 2019-09-27 17:38:08 1628
代碼中經(jīng)常會(huì)有變量是否為None的判斷,有三種主要的寫法:第一種是`ifxisNone`;第二種是`ifnotx:`;第三種是`ifnotxisNone`(這句這樣理解更清晰`ifnot(xisNone)`)。如果你覺(jué)得這樣寫沒(méi)啥區(qū)別,那么你可就要小心了,這里面有一個(gè)坑。先來(lái)看一下代碼:>>>x=1>>>notxFalse>>>x=[1]>>>notxFalse>>>x=0>>>notxTrue>>>x=[0]#Youdon'twanttofallinth
系統(tǒng) 2019-09-27 17:38:05 1628
下面先給大家介紹下Python3執(zhí)行系統(tǒng)命令并獲取實(shí)時(shí)回顯最近在改造一些打包的邏輯,原來(lái)在Windows下是基于批處理制作的,由于批處理用起來(lái)不是很方便,一些實(shí)時(shí)的計(jì)算基本無(wú)法勝任,所以轉(zhuǎn)向Python3。但在以前腳本的基礎(chǔ)上很多是需要調(diào)用系統(tǒng)命令的比如VS編譯一個(gè)項(xiàng)目,我們需要獲取實(shí)時(shí)的回顯知道編譯的結(jié)果和進(jìn)度。所以就有了以下方法:@staticmethoddef__external_cmd(cmd,code="utf8"):print(cmd)proc
系統(tǒng) 2019-09-27 17:38:04 1628
一、參數(shù)傳入規(guī)則可變參數(shù)允許傳入0個(gè)或任意個(gè)參數(shù),在函數(shù)調(diào)用時(shí)自動(dòng)組裝成一個(gè)tuple;關(guān)鍵字參數(shù)允許傳入0個(gè)或任意個(gè)參數(shù),在函數(shù)調(diào)用時(shí)自動(dòng)組裝成一個(gè)dict;1.傳入可變參數(shù):defcalc(*numbers):sum=0forninnumbers:sum=sum+n*nreturnsum以上定義函數(shù),使用如下:傳入多個(gè)參數(shù),calc(1,2,3,4)30#函數(shù)返回值傳入一個(gè)列表,nums=[1,2,3]calc(*nums)#通過(guò)*將list中的元素作
系統(tǒng) 2019-09-27 17:38:04 1628
以下函數(shù)列出某個(gè)目錄下(包括子目錄)所有文件,本隨筆重點(diǎn)不在于遞歸函數(shù)的實(shí)現(xiàn),這是一個(gè)很簡(jiǎn)單的遞歸,重點(diǎn)在于熟悉Python庫(kù)os以及os.path一些函數(shù)的功能和用法。1.os.listdir(path):列出path下所有內(nèi)容(包括文件和目錄,不包括.和..)2.os.path.join(path1,path2,path3...):拼接目錄,例如將'home','test'拼接成'home/test/'3.os.path.isdir(path):判斷p
系統(tǒng) 2019-09-27 17:38:04 1628
本文介紹了Python對(duì)于線程的支持,包括“學(xué)會(huì)”多線程編程需要掌握的基礎(chǔ)以及Python兩個(gè)線程標(biāo)準(zhǔn)庫(kù)的完整介紹及使用示例。注意:本文基于Python2.4完成,;如果看到不明白的詞匯請(qǐng)記得百度谷歌或維基,whatever。1.線程基礎(chǔ)1.1.線程狀態(tài)線程有5種狀態(tài),狀態(tài)轉(zhuǎn)換的過(guò)程如下圖所示:1.2.線程同步(鎖)多線程的優(yōu)勢(shì)在于可以同時(shí)運(yùn)行多個(gè)任務(wù)(至少感覺(jué)起來(lái)是這樣)。但是當(dāng)線程需要共享數(shù)據(jù)時(shí),可能存在數(shù)據(jù)不同步的問(wèn)題。考慮這樣一種情況:一個(gè)列表里所
系統(tǒng) 2019-09-27 17:38:03 1628
Python用WMI模塊獲取Windows系統(tǒng)的硬件信息:硬盤分區(qū)、使用情況,內(nèi)存大小,CPU型號(hào),當(dāng)前運(yùn)行的進(jìn)程,自啟動(dòng)程序及位置,系統(tǒng)的版本等信息。本文實(shí)例講述了python使用wmi模塊獲取windows下的系統(tǒng)信息監(jiān)控系統(tǒng)#!/usr/bin/envpython#-*-coding:utf--*-#http://www.cnblogs.com/liu-ke/importwmiimportosimportsysimportplatformimport
系統(tǒng) 2019-09-27 17:38:02 1628
今天一個(gè)朋友給個(gè)需求:來(lái)來(lái){'isOK':1,'isRunning':None,'isError':None}怎么轉(zhuǎn)換成字典好,一看就是json轉(zhuǎn)化很簡(jiǎn)單,開(kāi)始:importjsona="{'isOK':1,'isRunning':None,'isError':None}"printjson.loads(a)死活出不來(lái)結(jié)果,還報(bào)錯(cuò),查了兩個(gè)小時(shí)的百度,沒(méi)搞明白。最后,直接復(fù)制網(wǎng)上的代碼,OK,運(yùn)行成功,可是把我的a變量填進(jìn)去,不行,報(bào)錯(cuò);開(kāi)始對(duì)比兩個(gè)變量有
系統(tǒng) 2019-09-27 17:38:00 1628