原创 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無論