原创 python 設計模式(六) 觀察者模式(Observer pattern)

觀察者模式即當被觀察對象發生變化時,能及時通知觀察者,這種需求主要用在網站或者店鋪的關注上,比如你關注了某個微信公衆號,或者淘寶上的商家,當公衆號有更新或者店家新到商品或者商品促銷時,可以及時通知你。代碼實現了E_commerce被觀察對

原创 python 設計模式(二) 六大設計原則二 里氏替換原則(Liskov Substitution Principle)

里氏替換原則簡稱LSP。定義:所有引用基類的地方必須能夠透明地使用其子類的對象。所謂對象是一組狀態和一系列行爲的組合。狀態是對象的內在特性,行爲是對象的外在特性。LSP所表述的就是在同一個繼承體系中的對象應該有共同的行爲特徵。我們在設計對

原创 python 設計模式(二) 六大設計原則一 單一職責原則(SRP)

單一職責原則(single responsibility principle)        簡稱SRP。There should never be more than one reason for a class to change.僅

原创 python 設計模式(一) 單例模式

單例模式單例模式:不管用類實例化對象多少次,所得到的對象都是同一個對象。這種模式的應用場景,如數據庫連接,配置信息等。1 通過類的嵌套實現單例# create singleton by means of class nestificati

原创 python 設計模式(五) 策略模式(Strategy pattern)

一種常見的情況,根據參數的值來做相應處理。比如,同一個網頁,對於管理員來說,某地方顯示爲編輯按鈕,但對於一般用戶則不顯示。這個邏輯很容易實現,只需用if else實現即可。一種場景,大學開學第一天。cs(computer science)

原创 python 設計模式(七) 命令模式(command pattern)

命令模式是利用類來實現對命令函數的封裝,實現命令調用者和命令接收者之間的解耦,命令模式具體包括三部分:1 命令調用者(客戶端,調用命令的函數或者類)2 命令(對命令接收者命令函數的封裝)3 命令接收者(真正執行命令的地方,實現了衆多命令函

原创 python 設計模式(三) 工廠模式

工廠模式是創建型設計模式的一種。核心的思想是,通過傳遞給類或函數某種產品的信息來創建產品並返回。當我們想得到產品a對象,只需把產品a的名字傳遞給工廠函數就能得到產品a對象。1 簡單工廠方法模式簡單工廠模式,是最簡單的工廠方法模式,其由兩部

原创 python 設計模式(四) 建造者模式(builder design pattern)

建造者模式     我們想要創建一個有多個部分構成的對象, 而且它的構成需要一步步地完成,只有各個部分都創建好了,這個對象纔算完成,因此就誕生了建造者模式。建造者模式將一個複雜的構造過程與其表現分離,這樣, 同一個構建過程(使用同一個指揮

原创 python 獲取時間並格式化(strftime, localtime)

獲取時間並轉換爲易讀格式用到的模塊time中的strftime, localtimefrom time import strftime, localtime print(strftime('%Y-%m-%d %H:%M:%S',local

原创 Linux 命令tar

1 打包把本地文件夾example打包爲file.tar,不壓縮tar -cvf file.tar ./example把本地文件後綴爲pdf的文件,打包到file.tar中去,拆包時一定要指定文件夾,並且指定的文件夾存在tar -cvf

原创 numpy where 函數

今天又把numpy where函數的用法忘記了。趕緊上網搜了下,寫的都不太好。最後在知乎上看到了很好的答案,一看就明白了where函數的用法,鏈接如下

原创 python 查看對象的屬性和方法

dir方法print(dir(obj)) obj爲對象名, 此命令打印對象所有屬性和方法如a = [1,2] print(dir(a))結果如下['__add__', '__class__', '__contains__', '__de

原创 如何獲取dataframe的某個column的值爲某值的行的index和行號

如下代碼,column a爲0的index 爲1 行號爲0      a   b   c 1   0   2  4 2   1   3  5 import pandas as pd import numpy as np data_fr

原创 python ./lib/train.py 路徑說明 os.getcwd() os.path.dirname(__file__)

當在terminal中運行 python ./lib/train.py時,以下代碼的輸入結果爲 import os print(os.getcwd()) # . 打印的是項目根目錄 print(os.path.dirname(__fi

原创 字典的copy,deepcopy

1 字典的淺拷貝:value爲可變對象的情況,則共用,value爲不可變的情況則複製,複製的對象不受原字典value變化的影響 2 字典中沒有深拷貝,要先引入,from copy import deepcopy  對於深拷貝value無論