#案例:'''
某網路遊戲中,定義了玩家類player(id,name,status)
每當有乙個玩家,就會在伺服器建立乙個player例項
如何降低這些例項的大量例項的記憶體開銷?
解決方案:定義類的 __slots__屬性,它是用來宣告例項屬性名字的列表
'''class
player(object):
__slots__ = ['
name
', '
id', '
status']
def__init__
(self, name, id, status):
self.name =name
self.id =id
self.status =status
deftest(self):
(self.name)
(self.id)
(self.status)
class
player1(object):
def__init__
(self, name, id, status):
self.name =name
self.id =id
self.status =status
p = player("
li", '
111', '10'
)p.test()
p1 = player1("
li", '
111', '10'
(dir(p1))
(dir(p))
print(set(dir(p1)) - set(dir(p))) #
求兩個例項的差集 p1比p多了 其__dict__占用大量記憶體
import
sysprint(sys.getsizeof(p1.__dict__)) #
列印出p1.__dict__占用記憶體大小
"""例項p1可以動態生成屬性,而p則不行,實現阻止動態繫結
"""p1.x = 1p1.
__dict__['
y'] = 2
print(p1.__dict__)#
p.x = 1
#p.__dict__['y'] = 2
python 類和例項
物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。仍以student類為例,在python中,定義類是通過class關鍵字 class stude...
python 類和例項
物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。仍以student類為例,在python中,定義類是通過class關鍵字 class stude...
python 類,物件 例項
簡單示例 類方法 python 類方法和例項方法相似,它最少也要包含乙個引數,只不過,類方法中通常將其命名為 cls,且 python 會自動將類本身繫結給 cls 引數 而不是類物件 因此,在呼叫類方法時,無需顯式為 cls 引數傳參。類靜態方法 靜態方法,其實就是我們學過的函式,和函式唯一的區別...