Python的一些高階學習 2017 10 17

2021-08-09 10:43:55 字數 819 閱讀 9250

如何建立大量的例項節省記憶體

用定義類的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 遍...