如何建立大量的例項節省記憶體
用定義類的slots宣告例項屬性名字的列
直接上比較**:
class player(object):
def __init__(self,uid,name,status=0,level=1):
self.uid= uid
self.name= name
self.stat= status
self.level = level
class player2(object):
__slots__=
def __init__(self,uid,name,status=0,level=1):
self.uid=uid
self.name= name
self.stat=status
self.level= level
直接上例項 :
p1=player('0001','jim')
p2=player2('0001','jim')
#dir函式 可以看乙個模組有哪些屬性和方法
set(dir(p1))-set(dir(p2))
發現 p1 比p2 多兩個方法,其中dict這個方法是多佔記憶體的。可以通過sys.getsizeof(p1.dict)來檢視占用多少位元組
所以如果要建立大量例項,可以將slots封裝到例項的定義裡 以此來節約記憶體
Python的一些高階學習 2017 08 16
通過迭代器對檔案切片 日常工作中會遇到多達4,5g的日誌檔案,如果把檔案都一次讀到記憶體,再進行切片比較浪費資源 in 7 f open access.log in 7 lines f.readlines in 7 lines 1 19 這樣對文字是可以切片的,但是如果檔案很大,就很浪費資源 可以用...
Python的一些高階學習 2017 08 28
最近工作太忙,沒時間寫心得 趁著七夕趕緊來一發 拆分含有多個分隔符的字串 還是經常用到的 兩種方法分割字串 1.split 切分 def mysplit s,ds s 源字串 ds 分隔符 res s for d in ds t map lambda x t.extend x.split d res...
一些python高階語法
enum列舉是乙個類。from enum import enum class vip enum green 1 print vip.green.value 通過.value訪問green標籤對應值 name獲取標籤名 列舉型別,列舉名字,列舉值是三個概念 for v in vip print v 遍...