面向?qū)ο蟮木幊陶Z(yǔ)言在寫(xiě)大型程序的的時(shí)候,往往比面向過(guò)程的語(yǔ)言用起來(lái)更方便,安全。其中原因之一在于:類(lèi)機(jī)制。類(lèi),對(duì)眾多的數(shù)據(jù)進(jìn)行分類(lèi),封裝,讓一個(gè)數(shù)據(jù)對(duì)象成為一個(gè)完整的個(gè)體,貼近現(xiàn)實(shí)生活,高度抽象化。但是,python對(duì)類(lèi)的封裝并不好,因?yàn)樗械膶傩院头椒ǘ际枪_(kāi)的,你可以隨意訪(fǎng)問(wèn)或者寫(xiě)入,你可以在類(lèi)的外部對(duì)類(lèi)的屬性進(jìn)行修改,甚至添加屬性。這的確讓人感到不安。下面就來(lái)總結(jié)一下學(xué)習(xí)后的解決方案。1,使用2個(gè)下劃線(xiàn)前綴隱藏屬性或者方法。__xxx#!/usr/b
系統(tǒng) 2019-09-27 17:38:10 1619
1.上下文管理器是什么?舉個(gè)例子,你在寫(xiě)Python代碼的時(shí)候經(jīng)常將一系列操作放在一個(gè)語(yǔ)句塊中:(1)當(dāng)某條件為真?C執(zhí)行這個(gè)語(yǔ)句塊(2)當(dāng)某條件為真?C循環(huán)執(zhí)行這個(gè)語(yǔ)句塊有時(shí)候我們需要在當(dāng)程序在語(yǔ)句塊中運(yùn)行時(shí)保持某種狀態(tài),并且在離開(kāi)語(yǔ)句塊后結(jié)束這種狀態(tài)。所以,事實(shí)上上下文管理器的任務(wù)是?C代碼塊執(zhí)行前準(zhǔn)備,代碼塊執(zhí)行后收拾。上下文管理器是在Python2.5加入的功能,它能夠讓你的代碼可讀性更強(qiáng)并且錯(cuò)誤更少。接下來(lái),讓我們來(lái)看看該如何使用。2.如何使用上
系統(tǒng) 2019-09-27 17:38:08 1619
python語(yǔ)言的3.x完全不向前兼容,導(dǎo)致我們?cè)趐ython2.x中可以正常使用的庫(kù),到了python3就用不了了.比如說(shuō)mysqldb1.安裝pymysqlpymysql就是作為python3環(huán)境下mysqldb的替代物,進(jìn)入命令行,使用pip安裝pymysqlpipinstallpymysql32.使用pymysql在我們需要使用數(shù)據(jù)庫(kù)的.py文件開(kāi)頭添加下面兩行importpymysqlpymysql.install_as_MySQLdb()第一行
系統(tǒng) 2019-09-27 17:38:08 1619
實(shí)際上,Python提供了with語(yǔ)句來(lái)管理資源關(guān)閉。比如可以把打開(kāi)的文件放在with語(yǔ)句中,這樣with語(yǔ)句就會(huì)幫我們自動(dòng)關(guān)閉文件。with語(yǔ)句的語(yǔ)法格式如下:withcontextexpression[astarget(s)]:with代碼塊在上面的語(yǔ)法格式中,context_expression用于創(chuàng)建可自動(dòng)關(guān)閉的資源。例如,程序使用with語(yǔ)句來(lái)讀取文件:importcodecs#使用with語(yǔ)句打開(kāi)文件,該語(yǔ)句會(huì)負(fù)責(zé)關(guān)閉文件withcodecs.
系統(tǒng) 2019-09-27 17:38:03 1619
前言很多時(shí)候在windows下壓縮文件沒(méi)問(wèn)題,但是到了Linux下,出現(xiàn)亂碼,很常見(jiàn)。以前在Ubuntu下,用`unzip-OGBKfilename.zip`就可以搞定。換了Fedora后,暫時(shí)沒(méi)發(fā)現(xiàn)亂碼的壓縮文件。晚上下載一本書(shū)的光盤(pán),又碰到了亂碼。嘗試之前的方法沒(méi)成功。看了下unzip的help,沒(méi)-O那個(gè)參數(shù)了==剛好找到一個(gè)用python解決的辦法,分享下。新建一個(gè)`.py`后綴的文件,直接復(fù)制粘貼代碼:#!/usr/bin/envpython#-
系統(tǒng) 2019-09-27 17:38:03 1619
前言相信對(duì)于python開(kāi)發(fā)人員來(lái)說(shuō),機(jī)器上有不同的python版本是很正常的,因?yàn)殚_(kāi)發(fā)的項(xiàng)目有的用2.6或2.7,有的就要用3.0+版本,如何把這些不同的版本管理好,保持每個(gè)環(huán)境的干凈和獨(dú)立,方便不同版本之間的切換,這時(shí)候就要用到我們的虛擬環(huán)境了,所以今天我們就來(lái)看看python虛擬環(huán)境搭建工具pyenv的使用。1、安裝gitclonehttps://github.com/yyuu/pyenv.git~/.pyenvecho‘exportPYENV_RO
系統(tǒng) 2019-09-27 17:38:00 1619
python是支持多線(xiàn)程的,主要是通過(guò)thread和threading這兩個(gè)模塊來(lái)實(shí)現(xiàn)的。thread模塊是比較底層的模塊,threading模塊是對(duì)thread做了一些包裝的,可以更加方便的使用。雖然python的多線(xiàn)程受GIL限制,并不是真正的多線(xiàn)程,但是對(duì)于I/O密集型計(jì)算還是能明顯提高效率,比如說(shuō)爬蟲(chóng)。下面用一個(gè)實(shí)例來(lái)驗(yàn)證多線(xiàn)程的效率。代碼只涉及頁(yè)面獲取,并沒(méi)有解析出來(lái)。#-*-coding:utf-8-*-importurllib2,timeim
系統(tǒng) 2019-09-27 17:37:56 1619
解決思路首先想到的就是利用python的正則表達(dá)式來(lái)匹配非法字符,然后找出非法記錄。然而理想總是豐滿(mǎn)的,現(xiàn)實(shí)卻是殘酷的。在實(shí)現(xiàn)的過(guò)程中,才發(fā)現(xiàn)自己對(duì)于字符編碼、以及python內(nèi)部字符串表示的相關(guān)知識(shí)的缺乏。在這期間,踩過(guò)了不少坑,到最后雖然還有些模糊的地方,但總算有一個(gè)總體清晰的了解。在此記錄下心得,避免以后在同一個(gè)地方跌倒。以下的測(cè)試環(huán)境是ArcGIS10.3自帶的python2.7.8環(huán)境,不保證其他python環(huán)境也適用。python正則表達(dá)式py
系統(tǒng) 2019-09-27 17:37:48 1619
1.準(zhǔn)備工作:工欲善其事必先利其器,因此我們有必要在進(jìn)行Coding前先配置一個(gè)適合我們自己的開(kāi)發(fā)環(huán)境,我搭建的開(kāi)發(fā)環(huán)境是:操作系統(tǒng):Ubuntu14.04LTSPython版本:2.7.6代碼編輯器:SublimeText3.0這次的網(wǎng)絡(luò)爬蟲(chóng)需求背景我打算延續(xù)DotNet開(kāi)源大本營(yíng)在他的那篇文章中的需求,這里就不再詳解。我們只抓取某一省中所有主要城市從2015-11-22到2015-10-24的白天到夜間的所有天氣情況。這里以湖北省為例。2.實(shí)戰(zhàn)網(wǎng)頁(yè)爬蟲(chóng)
系統(tǒng) 2019-09-27 17:37:46 1619
我的操作系統(tǒng)為centos6.51首先選擇django要使用什么數(shù)據(jù)庫(kù)。django1.10默認(rèn)數(shù)據(jù)庫(kù)為sqlite3,本人想使用mysql數(shù)據(jù)庫(kù),但為了測(cè)試方便順便要安裝一下sqlite開(kāi)發(fā)包。yuminstallmysqlmysql-devel#為了測(cè)試方便,我們需要安裝sqlite-devel包yuminstallsqlite-devel2接下來(lái)需要安裝Python了,因?yàn)镻ython3已經(jīng)成為主流,所以接下來(lái)我們要安裝Python3,到官網(wǎng)去下載P
系統(tǒng) 2019-09-27 17:37:45 1619