武道之路-煉體期五重天后期,之路五重
序列化:把對象從記憶體中變成可儲存和傳輸的過程,反之為還原序列化。
不同程式設計語言間傳遞對象的標準格式json(還有xml),不過在python中json只能序列化簡單的對象,複雜的一般用pickle(有可能不能還原序列化)
對於json來說,字典序列化的時候最好都使用雙引號。重要的方法:dumps()和dump()->序列化,loads()和load()->還原序列化,
dump把python對象轉換成json對象產生一個fp的檔案流,而dumps則是產生了一個字串,load和loads一樣。
import json,pickle
dict1={"name":"abc","score":77}
with open('test.txt','w') as f:
f.write(json.dumps(dict1))#pickle一樣 這裡是寫入
json.dump(dict1,f)#pickle一樣 這裡是寫入
json.loads(f.read()),json.load(f) 這裡是讀取
模組:本質是一個.py檔案,為了實現一些功能(變數,函數,類),檔案名稱:test.py 模組名:test
包:本質是一個目錄或檔案夾,其下必須有個__init__.py檔案(放一些模組)
引入:
import x,y,z as m 引用多個模組, as 取別名
import test 把test.py檔案的代碼解釋一遍賦給test(調用其中變數:test.變數名,調用函數:test.函數名()),跟from test import * 一樣(把其中代碼粘貼過來,不建議如此用,防止變數函數會重複)
from test import x(test下的變數或方法,若防止重複名可取別名 as)
匯入包本質就是去執行其下的__init__.py檔案。
有時候import 模組時不在同一目錄下或其下:
imporyt os,sys
__file__當前程式的相對路徑
os.path.abspath(__file__)當前程式的絕對路徑
os.path.dirname(__file__) 去掉最後一個路徑
sys.path.append(url),設定環境變數。