Time of Update: 2016-06-10
Python中包含了許多內建的語言特性,它們使得代碼簡潔且易於理解。這些特性包括列表/集合/字典推導式,屬性(property)、以及裝飾器(decorator)。對於大部分特性來說,這些“中級”的語言特性有著完善的文檔,並且易於學習。但是這裡有個例外,那就是描述符。至少對於我來說,描述符是Python語言核心中困擾我時間最長的一個特性。這裡有幾點原因如下:1.有關描述符的官方文檔相當難懂,而且沒有包含優秀的樣本告訴你為什麼需要編寫描述符(我得為Raymond
Time of Update: 2016-06-10
推導式是Python中很強大的、很受歡迎的特性,具有語言簡潔,速度快等優點。推導式包括:1.列表推導式2.字典推導式3.集合推導式嵌套列表推導式NOTE: 字典和集合推導是最近才加入到Python的(Python 2.7 和Python 3.1以上版). 下面簡要介紹下:【列表推導式】列表推導能非常簡潔的構造一個新列表:只用一條簡潔的運算式即可對得到的元素進行轉換變形其基本格式如下:複製代碼 代碼如下:[expr for value in collection
Time of Update: 2016-06-10
本文執行個體講述了Python自動調用IE開啟某個網站的方法。分享給大家供大家參考。具體實現方法如下:import win32gui import win32com import win32com.client import pythoncom import time class Test: def runtest(self): print 'test' class EventHandler: def OnVisible(self,visible): global
Time of Update: 2016-06-10
本文執行個體講述了python中argparse模組用法。分享給大家供大家參考。具體分析如下:平常在寫命令列工具的時候,經常會帶參數,所以用python中的argparse來實現。# -*- coding: utf-8 -*- import argparse args = "-f hello.txt -n 1 2 3 -x 100 -y b -z a -q hello @args.txt i_am_bar -h".split() #
Time of Update: 2016-06-10
本文執行個體講述了Python實現程式的單一執行個體用法。分享給大家供大家參考。具體如下:這裡先使用win32ui.FindWindow尋找視窗名字,如果不存在則會拋出一個異常import wximport win32ui import win32con try: # 首先尋找該程式是否已經運行 win = win32ui.FindWindow(None, '視窗名字') try: if win:
Time of Update: 2016-06-10
本文執行個體講述了Python基於DES演算法加密解密實現方法。分享給大家供大家參考。具體實現方法如下:#coding=utf-8 from functools import partial import base64 class DES(object): """ DES密碼編譯演算法 interface: input_key(s, base=10), encode(s), decode(s) """ __ip = [ 58,50,42,34,26,18,1
Time of Update: 2016-06-10
本文執行個體講述了wxPython定時器wx.Timer簡單應用。分享給大家供大家參考。具體如下:# -*- coding: utf-8 -*- ######################################################## ## 這是wxPython定時器wx.Timer的簡單應用 ## testwxTimer1.pyw ######################################################## import wx
Time of Update: 2016-06-10
本文執行個體講述了Python實現Windows上氣泡提醒效果的方法。分享給大家供大家參考。具體實現方法如下:# -*- encoding: gbk -*- import sys import os import struct import time import win32con from win32api import * # Try and use XP features, so we get alpha-blending etc. try: from winxpgui import *
Time of Update: 2016-06-10
本文執行個體講述了python實現支援目錄FTP上傳下載檔案的方法。分享給大家供大家參考。具體如下:該程式支援ftp上傳下載檔案和目錄、適用於windows和linux平台。#!/usr/bin/env python# -*- coding: utf-8 -*-import ftplibimport osimport sysclass FTPSync(object): conn = ftplib.FTP() def __init__(self,host,port=21):
Time of Update: 2016-06-10
本文執行個體講述了python在windows下建立隱藏視窗子進程的方法。分享給大家供大家參考。具體實現方法如下:import subprocessIS_WIN32 = 'win32' in str(sys.platform).lower()def subprocess_call(*args, **kwargs): #also works for Popen. #It creates a new *hidden* window, #so it will work in frozen
Time of Update: 2016-06-10
本文執行個體講述了python中__call__內建函數的用法。分享給大家供大家參考。具體分析如下:對象通過提供__call__(slef, [,*args [,**kwargs]])方法可以類比函數的行為,如果一個對象x提供了該方法,就可以像函數一樣使用它,也就是說x(arg1, arg2...) 等同於調用x.__call__(self, arg1, arg2)。類比函數的對象可以用於建立仿函數(functor) 或代理(proxy)class DistanceForm(object):
Time of Update: 2016-06-10
本文執行個體講述了Python擷取系統預設字元編碼的方法。分享給大家供大家參考。具體分析如下:在Python代碼中,一般字元串的編碼方式與程式源檔案編碼方式一致的,而很多IDE在預設情況下,將程式源檔案按照系統預設字元編碼來儲存的。下面給出用Python擷取系統預設編碼的例子:#!/usr/bin/env python#coding=utf-8""" 擷取系統預設編碼"""import sysprint sys.getdefaultencoding()該段程式在英文WindowsXP上輸出為:
Time of Update: 2016-06-10
本文執行個體講述了python函數裝飾器用法。分享給大家供大家參考。具體如下:裝飾器經常被用於有切面需求的情境,較為經典的有插入日誌、效能測試、交易處理等。裝飾器是解決這類問題的絕佳設計, 有了裝飾器,我們就可以抽離出大量函數中與函數功能本身無關的雷同代碼並繼續重用。概括的講,裝飾器的作用就是為已經存在的對象添加額外的功能。#! coding=utf-8 import time def timeit(func): def wrapper(a): start = time.clock(
Time of Update: 2016-06-10
本文執行個體講述了python協程用法。分享給大家供大家參考。具體如下:把函數編寫為一個任務,從而能處理髮送給他的一系列輸入,這種函數稱為協程def print_matchs(matchtext): print "looking for",matchtext while True: line = (yield) #用 yield語句並以運算式(yield)的形式建立協程 if matchtext in line: print line>>> matcher =
Time of Update: 2016-06-10
本文執行個體講述了Python檔案及目錄操作的方法。分享給大家供大家參考。具體分析如下:在python中對檔案及目錄的操作一般涉及多os模組,os.path模組。具體函數以及使用方法在程式中說明。#!/usr/bin/env python#-*- coding=UTF8 -*-import osimport os.path as opdef change_dir(): ''' 該函數顯示及改變前目錄 using chdir() to change current dir getcwd()
Time of Update: 2016-06-10
本文執行個體講述了Python處理序間通訊用法。分享給大家供大家參考。具體如下:#!/usr/bin/env python# -*- coding=utf-8 -*-import multiprocessingdef counsumer(input_q): while True: item = input_q.get() #處理項目 print item #此處替換為有用的工作 #發出訊號通知任務完成 input_q.task_done()def
Time of Update: 2016-06-10
本文執行個體講述了python避免死結方法。分享給大家供大家參考。具體分析如下:當兩個或者更多的線程在等待資源的時候就會產生死結,兩個線程相互等待。在本文執行個體中 thread1 等待thread2釋放block , thread2等待thtead1釋放ablock, 避免死結的原則:1. 一定要以一個固定的順序來取得鎖,這個列子中,意味著首先要取得alock, 然後再去block2. 一定要按照與取得鎖相反的順序釋放鎖,這裡,應該先釋放block,然後是alockimport
Time of Update: 2016-06-10
本文執行個體講述了python建立進程fork用法。分享給大家供大家參考。具體分析如下:#!coding=utf-8import os ,tracebackimport time'''fork()系統調用是Unix下以自身進程建立子進程的系統調用,一次調用,兩次返回,如果返回是0,則是子進程,如果傳回值>0,則是父進程(傳回值是子進程的pid)'''source = 10i = 0try: print '***********************' pid = os.fork()
Time of Update: 2016-06-10
本文執行個體講述了python中引用與複製用法。分享給大家供大家參考。具體分析如下:在python中,任何不可變對象是傳值的,而可變對象是傳引用的。不管是向函數傳遞參數或者是任何形式的對象複製來說,不可變對象(比如整數,字串)被真正複製,而可變對象只是複製了一個對他們的引用,即在記憶體中只有一份對象,而引用兩份。 a=b 這樣的賦值,就會建立對b的引用,對於象數字和字串這樣的不可變的對象,這種賦值實際是建立了b的一個副本>>> a='hello'>>> b=a>>> id(a)29326432>
Time of Update: 2016-06-10
本文執行個體講述了Python實現處理管道的方法。分享給大家供大家參考。具體分析如下:Linux下的可以施展的最炫的魔法是什嗎?相信不同的人說法不同,但是如果沒有管道,那麼恐怕在絢麗魔法的都會失去魔力這裡就介紹怎麼使用Python來處理這些管道管道調用子程式我們想在程式中使用一個子程式,但是需要動態傳遞參數(這裡說的動態,是指根據上次子程式輸入的結果來決定這次輸入什麼),怎麼辦呢,不用慌,有subprocess!下文我先介紹一個例子代碼,以及他的輸出結果!#!/usr/bin/pythonfro