原创 數據庫連接查詢

1、創建兩張表a_001表b_001表查詢語句:1、內連接SELECT * FROM a_001 INNER JOIN b_001 ON a_001.id=b_001.parent_id2、左連接SELECT * FROM a_001 LE

原创 python閉包

(number):     (number_in):         (% number_in)         number+number_in     test_in ret = test() (ret()) (ret())

原创 python基礎

注(格式化輸出參數):typecode 必選s,獲取傳入對象的str方法的返回值,並將其格式化到指定位置r,獲取傳入對象的repr方法的返回值,並將其格式化到指定位置c,整數:將數字轉換成其unicode對應的值,10進制範圍爲 0 <=

原创 python裝飾器

簡言之,python裝飾器就是用於拓展原來函數功能的一種函數,這個函數的特殊之處在於它的返回值也是一個函數,使用python裝飾器的好處就是在不用更改原函數的代碼前提下給函數增加新的功能。 一般而言,我們要想拓展原來函數代碼,最直接的辦法就

原创 多任務

import timeimport threading def rw1():for i in range(5):print("任務一")time.sleep(1) def rw2():for i in range(5):print("任務二

原创 數據庫連接查詢

1、創建兩張表a_001表b_001表查詢語句:1、內連接SELECT * FROM a_001 INNER JOIN b_001 ON a_001.id=b_001.parent_id2、左連接SELECT * FROM a_001 LE

原创 python閉包

(number):     (number_in):         (% number_in)         number+number_in     test_in ret = test() (ret()) (ret())

原创 pythonz裝飾器的簡單實現

(fn):     ():         + fn() + wrapped (fn):     ():         + fn() + wrapped ():     ():     ():     (test1()) (test

原创 通過隊列完成進程間的通信

multiprocessing (q):     data = []     temp data:         q.put(temp)     () (q):     waitting_analysys_data = ()  

原创 GIL(全局解釋器鎖)與互斥鎖

在GIL(全局解釋器鎖)與互斥鎖的前提下,程序的運行過程分析 針對Cpython所擁有的GIL鎖 作用:由於Cpython解釋器在運行python文件時,      Cpython進程與其運行文件所產生的主進程是一個進程(文件進程相當於C

原创 字符串常用總結

1、字符串大小寫轉換str = "wang"print(str.upper()) # 把所有字符中的小寫字母轉換成大寫字母print(str.lower()) # 把所有字符中的大寫字母轉換成小寫字母pr

原创 python裝飾器

簡言之,python裝飾器就是用於拓展原來函數功能的一種函數,這個函數的特殊之處在於它的返回值也是一個函數,使用python裝飾器的好處就是在不用更改原函數的代碼前提下給函數增加新的功能。 一般而言,我們要想拓展原來函數代碼,最直接的辦法就

原创 python的互斥鎖,加鎖、同步機制、異步通信

某個線程要共享數據時,先將其鎖定,此時資源的狀態爲“鎖定”,其他線程不能更改;直到該線程釋放資源,將資源的狀態變成“非鎖定”,其他的線程才能再次鎖定該資源。互斥鎖保證了每次只有一個線程進入寫入操作,從而保證了多線程情況下數據的正確性。採用f

原创 引入進程和線程的概念及區別

1、線程的基本概念概念線程是進程中執行運算的最小單位,是進程中的一個實體,是被系統獨立調度和分派的基本單位,線程自己不擁有系統資源,只擁有一點在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創建和

原创 python多進程併發

Python提供了非常好用的多進程包multiprocessing,你只需要定義一個函數,Python會替你完成其他所有事情。藉助這個包,可以輕鬆完成從單進程到併發執行的轉換。1、新建單一進程如果我們新建少量進程,可以如下:import m