關于我一個有思想的程序猿,終身學習實踐者,目前在一個創業團隊任teamlead,技術棧涉及Android、Python、Java和Go,這個也是我們團隊的主要技術棧。Github:https://github.com/hylinux1024微信公眾號:終身開發者(angrycode)Flask中全局變量有current_app、request、g和session。不過需要注意的是雖然標題是寫著全局變量,但實際上這些變量都跟當前請求的上下文環境有關,下面一起
系統 2019-09-27 17:52:40 1886
我想使用python的第三方庫,但是我的IDE給我一個錯誤代碼:D:\untitled\venv\Scripts\python.exe"D:/pycode/venv/sxsxsxsxs.py"Traceback(mostrecentcalllast):File"D:\untitled\venv\lib\site-packages\urllib3\connectionpool.py",line597,inurlopenself._prepare_proxy(
系統 2019-09-27 17:52:39 1886
說到流處理,Spark為我們提供了窗口函數,允許在滑動數據窗口上應用轉換,常用場景如每五分鐘商場人流密度、每分鐘流量等等,接下來我們通過畫圖來了解SparkStreaming的窗口函數如何工作的,處理過程圖如下所示:上圖中綠色的小框框是一批一批的數據流,虛線框和實線框分別是前一個窗口和后一個窗口,從圖中可以看出后一個窗口在前一個窗口基礎上移動了兩個批次的數據流,而我們真正通過算子操作的數據其實就是窗口內所有的數據流。在代碼實現前了解下窗口操作常用的函數有:
系統 2019-09-27 17:52:34 1886
1.鎖:Lock(1次放1個)同步鎖線程安全,多線程操作時,內部會讓所有線程排隊處理。如:list/dict/Queue線程不安全+人=>排隊處理。需求:a.創建100個線程,在列表中追加8b.創建100個線程v=[]鎖-把自己的添加到列表中。-在讀取列表的最后一個。解鎖以后鎖一個代碼塊:importthreadingimporttimev=[]lock=threading.Lock()deffunc(arg):lock.acquire()#鎖的區域---
系統 2019-09-27 17:52:33 1886
建造者模式,也是一種創建新對象的設計方法,和C++中的虛函數很類似,但是用到了python自身的虛基類ABCMeta。1.應用場景:某個類中的函數較多,且實現比較復雜,很多時候需要繼承的子類重載或者重新定義邏輯;2.背景基礎:由于用到python中虛函數,需要了解abc模塊中的ABCMeta和python中類創建對象時的__metaclass__屬性含義。一般地,在某個類中如果定義__metaclass__=something時,簡單地說是,創建對象時,會
系統 2019-09-27 17:52:26 1886
3.4.5斷言斷言(assertions)的使用方式類似于if語句,只是在不滿足條件時,會直接拋出異常。類似于下面的if語句(偽代碼)ifnotcondition:#如果不滿足條件,會直接拋出異常,程序會中斷crashprogram那么究竟為什么需要這樣的代碼呢?主要原因為需要檢測程序在某個地方是否滿足條件,如果不滿足條件,應該及時通知開發人員,而不是將這些bug隱藏起來,知道關鍵的時候在崩潰。其實在TDD中經常使用斷言,TDD會在程序發現異常時執行斷言,
系統 2019-09-27 17:52:20 1886
Python實現Mysql數據統計的實例代碼如下所示:importpymysqlimportxlwtexcel=xlwt.Workbook(encoding='utf-8')sheet=excel.add_sheet('Mysql數據庫')sheet.write(0,0,'庫名')sheet.write(0,1,'表名')sheet.write(0,2,'數據條數')db=pymysql.connect('192.168.1.74','root','123
系統 2019-09-27 17:51:52 1886
1、數字普通除法print(7/3)2.3333333333333335地板除print(7//3)2取余print(7%3)1乘法print(7*3)21乘方print(3**3)27四則運算print((3*2)+5-(5*3))-42、字符串單引號和雙引號作用一樣print(‘hello’)print(“hello”)print("‘hello’")hellohello‘hello’將轉義符原樣輸出print(r"hello\nworld")hell
系統 2019-09-27 17:51:24 1886
生成器就是自己用python代碼寫的迭代器,生成器的本質就是迭代器。通過以下兩種方式構建一個生成器:1、通過生成器函數2、生成器表達式生成器函數:函數deffunc1(x):x+=1returnxprint(func1(5))生成器函數deffunc1(x):x+=1yieldxg_obj=func1(5)print(g_obj.__next__())一個next對應一個yield。yieldVSreturnreturn結束函數,給函數的執行者返回值yie
系統 2019-09-27 17:50:36 1886
在Thread和Process中,應當優選Process,因為Process更穩定,而且,Process可以分布到多臺機器上,而Thread最多只能分布到同一臺機器的多個CPU上。Python的multiprocessing模塊不但支持多進程,其中managers子模塊還支持把多進程分布到多臺機器上。一個服務進程可以作為調度者,將任務分布到其他多個進程中,依靠網絡通信。由于managers模塊封裝很好,不必了解網絡通信的細節,就可以很容易地編寫分布式多進程
系統 2019-09-27 17:50:30 1886