原创 設計模式之五--原型模式

原型模式:用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。原型模式其實就是從一個對象再創建另外一個可定製對象,而且不需要知道任何創建細節。 import copy from abc import ABCMeta,

原创 設計模式之四--代理模式

代理模式:爲其他對象提供一種代理以控制對這個對象的訪問。 其實代理模式有一定點像一個過濾對象,在訪問到真實對象之前的一道屏障。 from abc import ABCMeta, abstractmethod import sys

原创 Python進階篇--如何實現回調

看到標題大家可能都會覺得很簡單,但是事實並非如此,接下來我們一起細細看來。 第一種回調:看到標題後你的第一反應 def handler(x): print("The result is ", x) def add(a,

原创 Python進階篇--logging模塊的使用(一)

一個好的程序必定會有一個好的log模塊,這是軟件設計的重點之一。一個好的log模塊可以讓你快速定位問題所在,讓維護的感到神清氣爽,編寫便讚歎。“さすが、先輩です” 話不多說,言歸正傳。一起來探索一下python 的logging

原创 設計模式之六--模板模式

模板模式:定義一個操作中的算法骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。 from abc import ABCMeta, abstractmethod class

原创 Python進階篇--生成器

Python中有很多方便遍歷的數據結構。這些結構都是Iterable對象。主要包括一下集中 集合數據類型(list、tuple、dict、set、str等)和生成器(generator) 集合數據類型對於大家應該不是難題,這裏重點

原创 設計模式之一--工廠模式

簡單工廠模式: 耦合比較緊的時候比較適合的方法 這裏用加減乘除來做例子進行實現 from abc import ABCMeta, abstractmethod class Operator(metaclass=ABCMeta)

原创 Python進階篇--logging模塊的使用(下)

上一篇寫了一些關於logging模塊的基本使用方法,今天我們來一起挖掘一下,logging模塊的高端用法。 下面是很好的一些參考資源,大家也可一拜讀原文。 logging模塊基礎和進階 logging handlers loggi

原创 Python進階篇-ctypes下

Python調用C的時候,會傳遞一些複雜的數據結構,例如結構體,這時候就會遇到各種各樣字節對齊的問題。下邊所有的例子都是在windows 64bit下的結果。 格式字符串 說到這裏我們就要來說一下python中的格式字符串,格式字

原创 Python進階篇之--Numpy

最近一直在學習Python, Numpy是一個非常使用的庫。最近在研究。 學習必去的地方Numpy官網 中文快速入門 現在還處於初級階段,彙總一下遇到的問題。 reshape的第二個參數。 new shape int or tup

原创 設計模式之二--策略模式

策略模式:這種模式比較適合,同一個問題又多種解決方法類型的設計。 這裏以商場打打折促銷爲例,商場打折對不同的商品可能又不同的打着方式,比如打八折,300減100等等打折方式,這樣的實際問題就很適合使用策略模式。 from abc

原创 Python進階篇--異常結構體系

Python有自己的一套異常體系結構,今天就讓我們來一探究竟。 先從最簡單的異常說起。 def single_exception(): try: raise RuntimeError("This is a

原创 Python進階篇-創建類的方法

首先我們先來了解一個概念,什麼是元類? 我們創建一個類目的是爲了創建該類的實例對象,而元類就是用來創建類的。換個理解方式就是,元類就是創建類的類。 Python中創建類的方法有很多,接下來讓我們一起來探索一下吧。 第一種:使用cl

原创 Python進階篇--裝飾器

裝飾器是Python中的魔法所在,下邊讓我們來一探究竟。 話不多說, 上代碼。 前菜 from functools import wraps import time def timethis(func): @wraps

原创 Python進階篇--描述器類

今天我們來看一看,python魔法中的描述器類。 開胃小菜 什麼時描述器類?正統纔是王道,看看官方怎麼解釋的 Definition and Introduction In general, a descriptor is an o