mkvirtualenv-ppython3環境名創建虛擬環境rmvirtualenv環境名刪除環境進入虛擬環境workon環境名(workon+tab可以出來所有環境)查看環境下所有包pip3list查看環境下安裝的包(不包括原生python包)pip3freeze依賴包文件生成pip3freeze>requirements.txt環境導入依賴包pip3install-rrequirements.txt普通安裝pip3install包名這是linux下的指
系統 2019-09-27 17:52:34 1752
建造者模式,也是一種創建新對象的設計方法,和C++中的虛函數很類似,但是用到了python自身的虛基類ABCMeta。1.應用場景:某個類中的函數較多,且實現比較復雜,很多時候需要繼承的子類重載或者重新定義邏輯;2.背景基礎:由于用到python中虛函數,需要了解abc模塊中的ABCMeta和python中類創建對象時的__metaclass__屬性含義。一般地,在某個類中如果定義__metaclass__=something時,簡單地說是,創建對象時,會
系統 2019-09-27 17:52:26 1752
之前用了谷歌的selenium模塊,為了練習一下所以寫了這個(沒錯才不是別的理由!)代碼里涉及到了各種復雜的情況,包括要找的div在別的iframe中的處理方式,頂部導航欄的定位方式等等。綜合性很強下面是代碼fromseleniumimportwebdriverimporttimefromfake_useragentimportUserAgentopt=webdriver.ChromeOptions()#opt.add_argument('--headle
系統 2019-09-27 17:52:25 1752
Python語言與Perl,C和Java等語言有許多相似之處,也有一定的差異性,以下是Python語言獲取文件后綴名和文件名的方法:#Python獲取文件后綴名的方法importos.pathdeffile_extension(path):returnos.path.splitext(path)[1]printfile_extension('/py/a.py')輸出:.py#Python獲取目錄和文件名importos.pathdeffile_extens
系統 2019-09-27 17:52:22 1752
yield的功能類似于return,但是不同之處在于它返回的是生成器。生成器生成器是通過一個或多個yield表達式構成的函數,每一個生成器都是一個迭代器(但是迭代器不一定是生成器)。如果一個函數包含yield關鍵字,這個函數就會變為一個生成器。生成器并不會一次返回所有結果,而是每次遇到yield關鍵字后返回相應結果,并保留函數當前的運行狀態,等待下一次的調用。由于生成器也是一個迭代器,那么它就應該支持next方法來獲取下一個值。基本操作#通過`yield`
系統 2019-09-27 17:52:18 1752
原型模式,也是用于創建對象時的一種設計方法。主要應用場景是:每次初始化某個對象時,需要傳遞大量的參數,很不方便,此時,可以使用原型模式,在已經創建并初始化的對象基礎上,可以快速而又方便創建新的不同對象。主要原理:使用深拷貝,復制一個已創建的對象,然后使用__dict__.update()方法更新已創建對象中的參數值方式創建新對象。背景知識:在python中的類中,__dict__是一個字典,保存了所有該類中的變量,函數等參數。#coding=utf-8im
系統 2019-09-27 17:52:15 1752
看python社區大媽組織的內容里邊有一篇講python內存優化的,用到了__slots__。然后查了一下,總結一下。感覺非常有用python類在進行實例化的時候,會有一個__dict__屬性,里邊有可用的實例屬性名和值。聲明__slots__后,實例就只會含有__slots__里有的屬性名。#coding:utf-8classA(object):x=1def__init__(self):self.y=2a=A()printa.__dict__print(
系統 2019-09-27 17:52:11 1752
轉自:https://blog.csdn.net/yilovexing/article/details/80577510在Python中,*和**具有語法多義性,具體來說是有四類用法。1.算數運算*代表乘法**代表乘方>>>2*510>>>2**5322.函數形參*args和**kwargs主要用于函數定義。你可以將不定數量的參數傳遞給一個函數。不定的意思是:預先并不知道,函數使用者會傳遞多少個參數給你,所以在這個場景下使用這兩個關鍵字。其實并不是必須寫成
系統 2019-09-27 17:51:52 1752
pythonredis連接有序集合去重的代碼如下所述:#-*-coding:utf-8-*-importredisfromconstantimportredis_ip,redis_db,redis_pw,redis_zset_namepool=redis.ConnectionPool(host=redis_ip,db=redis_db,password=redis_pw)#pool=redis.ConnectionPool(db=6,password=re
系統 2019-09-27 17:51:00 1752
Python這門解釋性語言也有專門的線程模型,Python虛擬機使用GIL(GlobalInterpreterLock,全局解釋器鎖)來互斥線程對共享資源的訪問,但暫時無法利用多處理器的優勢。在Python中我們主要是通過thread和threading這兩個模塊來實現的,其中Python的threading模塊是對thread做了一些包裝的,可以更加方便的被使用,所以我們使用threading模塊實現多線程編程。這篇文章我們主要來看看Python對多線程
系統 2019-09-27 17:51:00 1752