Time of Update: 2018-12-03
賴勇浩(http://laiyonghao.com)註:本文根據 2011 年 12 月 4 日我在上海 PyCon China 上的報告的錄影整理而來,有較多口語,但廢話不多。原錄影:http://e.gensee.com/v_3df867_14(前面約四分半鐘的暖場與自我介紹,略)今天的主題演講其實受到兩個人的很大的啟發,一個是洪強寧洪教授,他在 2010 的時候做過一個叫《Python 於 web2.0 網站的應用》,大家可以看到我今天這個標題就是直接從他那裡借鑒過來的,連微創新都沒有。這
Time of Update: 2018-12-03
python 變數變數命名_變數名有字母、數字、底線組成_數字不能開頭_不可用使用系統關鍵字_a a1 a_ a_1變數的賦值-是變數聲明和已定義流程a=1ld(a)變數的名字盡量有意思使用id()查看記憶體的地址空間-運算子與運算式// 整數除法== 完全等於優先順序-------資料類型---在後面加一個L或者l能強制轉換成長整型如果想改成浮點型,只要在後面加個.0,就是浮點型需該需要用到浮點型,可以在後面加上.j,就是複合型str字串可以使用 ' " """ 切片的操作a[開始:結尾:
Time of Update: 2018-12-03
用getopt.getopt()來分析命令列參數。getopt是用來分析命令列參數的模組。模組中的函數:getopt(args, options[, long_options]) args一般為sys.argv[1:]。options為選項字母(以"-"開始)組成的字串,如果某個選項字母帶有參數,那麼這個字母有要加":"號。long_options為選擇性參數,它是一個字串的List,用來表示長參數(以"--"開始),如果某個長參數帶有參數,那麼這個字母后面要加"="。函數有兩個返回:第一個是(
Time of Update: 2018-12-03
Python中的Module是比較重要的概念。常見的情況是,事先寫好一個.py檔案,在另一個檔案中需要import時,將事先寫好的.py檔案拷貝到目前的目錄,或者是在sys.path中增加事先寫好的.py檔案所在的目錄,然後import。這樣的做法,對於少數檔案是可行的,但如果程式數目很多,層級很複雜,就很吃力了。有沒有辦法,像Java的Package一樣,將多個.py檔案組織起來,以便在外部統一調用,和在內部互相調用呢?答案是有的。要弄明白這個問題,首先要知道,Python在執行import語
Time of Update: 2018-12-03
簡單原廠模式的最大優點就是工廠類內部包含了必要的邏輯判斷,用戶端只要提供選擇條件即可,這樣用戶端就不需要知道具體產品的資訊了。但是每次增加產品就要修改工廠類,違背了“開放-封閉”原則。所以,有了Factory 方法模式Factory 方法模式:定義一個用於建立對象的介面,讓子類決定執行個體化哪一個類。Factory
Time of Update: 2018-12-03
觀察者模式:又叫發布-訂閱模式。
Time of Update: 2018-12-03
<Dive into Python>大補貼作者:賴勇浩前言前幾日發了一篇<為什麼<Dive into Python>不值得推薦>的貼子,有朋友指出這本書雖然不適合初學者,但裡面的一些內容還是可以當作提高篇的,最大的問題也許在於它基於老版本的 Python,並提出給 DIP 打補丁的想法。我覺得打補丁的想法還是很有意義的,而我也正好想宣傳一下 Python 的新特性,所以決定寫這 DIP
Time of Update: 2018-12-03
開源可視化 Python 效能調優工具 VPT 發布 VisualPyTune(簡稱VPT)是我自己建立的開源項目,親曆親為,現在終於發布了。有種由衷的高興,難以言表,希望它真的能協助廣大的 Pythoner ,也歡迎大家提出寶貴的意見和建議。緣起: Python 程式的確更容易遭遇效能瓶頸,儘管其內建了效能剖分模組(如 Profile、hotshot 等),但對於剖分結果卻沒有一個良好的圖形介面瀏覽器,使用
Time of Update: 2018-12-03
第四章-list對象 list對象定義:typedef struct {PyObject_VAR_HEADPyObject **ob_item;Py_ssize_t allocated;} PyListObject;list對象是變長對象,所以有變長對象頭ob_item數組為真正的儲存容器,用來儲存PyObject對象指標。ob_size表示list長度。allocated表示list已指派了多少儲存空間。list的建立分兩步。1. 建立list對象本身。2.
Time of Update: 2018-12-03
#!/usr/bin/python# -*- coding: UTF-8# filename BFimport time"""t="this is a big apple,this is a big apple,this is a big apple,this is a big
Time of Update: 2018-12-03
5.7 math -- Mathematical functions This module is always available. It provides access to the mathematical functions defined by the C standard. These functions cannot be used with complex numbers; use the functions of the same name from the cmath
Time of Update: 2018-12-03
1.安裝python 普通python程式就可以運行了.2.安裝pywin32-218.win32-py2.7.exe 不依賴其他庫的python寫的windows應用程式就可以運行了,比如傳統型程式,office程式等3.如果需要使用easy_install工具安裝其他庫的話,安裝:setuptools-0.6c11.win32-py2.7.exe4.然後就在命令列使用 easy_install.py ****
Time of Update: 2018-12-03
原型模式:用原型執行個體指定建立對象的種類,並且通過拷貝這些原型建立新的對象。原型模式本質就是複製對象,所以在對象初始化操作比較複雜的情況下,很實用,能大大降低耗時,提高效能,因為“不用重新初始化對象,而是動態地獲得對象運行時的狀態”。淺拷貝(Shallow Copy):指對象的欄位被拷貝,而欄位引用的對象不會被拷貝,拷貝的對象和來源物件只是名稱相同,但是他們共用一個實體。深拷貝(deep copy):對對象執行個體中欄位引用的對象也進行拷貝。#encoding=utf-8##by panda#
Time of Update: 2018-12-03
中介者模式:用一個中介對象來封裝一系列的對象互動。中介者使各對象不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。一般應用於一組對象以定義良好但是複雜的方式進行通訊的場合。優點:降低了各個模組的耦合性。缺點:中介對象容易變得複雜和龐大。#encoding=utf-8##by panda#中介者模式def printInfo(info): print unicode(info, 'utf-8').encode('gbk')#抽象中介者class Mediator():
Time of Update: 2018-12-03
問題眾所周知,在 python 中,+ 運算子可以使用在列表上,+ 運算子只需要第二個運算元是可迭代的(原文:iterable。@justjavac),那麼 + 顯然可以運算在 "ha" 上。代碼如下:>>> x = []>>> x += "ha">>> x['h', 'a']>>> x = x + "ha"Traceback (most recent call last):File "<stdin>",
Time of Update: 2018-12-03
這個是自己做項目的一個需求,之前使用jython來在java中調用python指令碼,但是當python引入的第三方的類庫之後,jython中是不存在這種包的,就會造成的結果是,不能使用 import fontforge 是沒有定義的。下面是直接使用java的一個函數,Runtime類來進行python指令碼的調用。下面對對應的java程式 import java.io.IOException;public class TestJava {public static void
Time of Update: 2018-12-03
quopri模組和base64模組有點象,都是用來編碼和解碼的,且base64和quoted-printable這兩種編碼都是在電子郵件中常見的編碼。quoted-printable的編碼方法為:
Time of Update: 2018-12-03
https://github.com/geoffwatts/zmqrpc傳輸資料格式:bson模型: 多線程Client Server ------ ------------------------------ client worker(thread) \ /cleint -- queue
Time of Update: 2018-12-03
出現異常如下 RuntimeError: Second simultaneous read on fileno 8 detected. Unless you really know what you're doing, make sure that only one greenthread can read any particular socket. Consider using a pools.Pool. If you do know what you're doing and
Time of Update: 2018-12-04
#_*_encoding:utf-8_*_import threadingimport Queuefrom DisposeXml import *class ThreadPoolMgr(): def __init__(self,work_queue,thread_num=2): self.threads=[] self.work_queue=work_queue self.init_threadpool(thread_num)