欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python類中的魔法方法之 __slots__原理解析

 更新時(shí)間:2019年08月26日 14:21:56   作者:JasonMingHao  
這篇文章主要介紹了Python類中的魔法方法之 __slots__詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

在類中每次實(shí)例化一個(gè)對(duì)象都會(huì)生產(chǎn)一個(gè)字典來保存一個(gè)對(duì)象的所有的實(shí)例屬性,這樣非常的有用處,可以使我們?nèi)我獾娜ピO(shè)置新的屬性。

每次實(shí)例化一個(gè)對(duì)象python都會(huì)分配一個(gè)固定大小內(nèi)存的字典來保存屬性,如果對(duì)象很多的情況下會(huì)浪費(fèi)內(nèi)存空間。

可通過__slots__方法告訴python不要使用字典,而且只給一個(gè)固定集合的屬性分配空間

class Foo(object):
 __slots__ = ("x","y","z")

 def __init__(self,x,y):
  self.x = x
  self.y = y
  self.z = None

 def tell_info(self,name):
  return getattr(self,name)

c = Foo(10,20)
# 設(shè)置和獲取__slots__中設(shè)置的可訪問實(shí)例屬性
print(c.tell_info("x"))  # 結(jié)果:10

c.z=50
print(c.tell_info("z")) # 結(jié)果:50

# 設(shè)置一個(gè)不在__slots__中存在的屬性,會(huì)報(bào)錯(cuò)
c.e = 70 # AttributeError: 'Foo' object has no attribute 'e'

# 訪問對(duì)象.__dict__ 也會(huì)直接報(bào)錯(cuò)
print(c.__dict__) # AttributeError: 'Foo' object has no attribute '__dict__'

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 搞笑的程序猿:看看你是哪種Python程序員

    搞笑的程序猿:看看你是哪種Python程序員

    這篇文章主要介紹了搞笑的程序猿:看看你是哪種Python程序員,不久前,在互聯(lián)網(wǎng)上出現(xiàn)了一篇有趣的文章,講的是對(duì)于同一個(gè)問題,不同層次的Python程序員編出的Python代碼,顯示出了不同的風(fēng)格,代碼都很簡(jiǎn)單,有趣,需要的朋友可以參考下
    2015-06-06
  • python 解決函數(shù)返回return的問題

    python 解決函數(shù)返回return的問題

    這篇文章主要介紹了python 解決函數(shù)返回return的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • pyspark連接mysql數(shù)據(jù)庫報(bào)錯(cuò)的解決

    pyspark連接mysql數(shù)據(jù)庫報(bào)錯(cuò)的解決

    本文主要介紹了pyspark連接mysql數(shù)據(jù)庫報(bào)錯(cuò)的解決,因?yàn)閟park中缺少連接MySQL的驅(qū)動(dòng)程序,下面就來介紹一下解決方法,感興趣的可以了解一下
    2023-11-11
  • python錯(cuò)誤調(diào)試及單元文檔測(cè)試過程解析

    python錯(cuò)誤調(diào)試及單元文檔測(cè)試過程解析

    這篇文章主要介紹了python錯(cuò)誤調(diào)試及單元文檔測(cè)試過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • pycharm修改主題顏色和注釋顏色的詳細(xì)圖文教程

    pycharm修改主題顏色和注釋顏色的詳細(xì)圖文教程

    PyCharm是一款強(qiáng)大的Python編輯器,相信很多人都已經(jīng)用上了它,這篇文章主要給大家介紹了關(guān)于pycharm修改主題顏色和注釋顏色的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • Python時(shí)間和字符串轉(zhuǎn)換操作實(shí)例分析

    Python時(shí)間和字符串轉(zhuǎn)換操作實(shí)例分析

    這篇文章主要介紹了Python時(shí)間和字符串轉(zhuǎn)換操作,結(jié)合實(shí)例形式分析了Python時(shí)間的格式化輸出、時(shí)間戳轉(zhuǎn)換、datetime轉(zhuǎn)換字符串等相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • Python模塊MarkupPy與自定義html報(bào)告詳解

    Python模塊MarkupPy與自定義html報(bào)告詳解

    MarkupPy是Python模塊用于生成HTML和XML格式的字符串,它的主要作用是提供了一種比原生HTML/XML更加易讀和易寫的編寫方式,通過Python代碼來生成HTML或XML代碼,這篇文章主要介紹了Python模塊MarkupPy&自定義html報(bào)告的相關(guān)知識(shí),需要的朋友可以參考下
    2023-07-07
  • Python的Pandas庫中使用DataFrame篩選和刪除含特定值的行與列

    Python的Pandas庫中使用DataFrame篩選和刪除含特定值的行與列

    Pandas是一個(gè)強(qiáng)大的數(shù)據(jù)處理庫,提供了各種功能來操作和處理數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Python的Pandas庫中使用DataFrame篩選和刪除含特定值的行與列的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • Python實(shí)現(xiàn)的彈球小游戲示例

    Python實(shí)現(xiàn)的彈球小游戲示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的彈球小游戲,可實(shí)現(xiàn)類似乒乓球游戲的鍵盤控制底部擋板移動(dòng)碰撞小球的游戲功能,需要的朋友可以參考下
    2017-08-08
  • Python+Pygame實(shí)戰(zhàn)之炫舞小游戲的實(shí)現(xiàn)

    Python+Pygame實(shí)戰(zhàn)之炫舞小游戲的實(shí)現(xiàn)

    提到QQ炫舞,可能很多人想到的第一個(gè)詞是“青春”?;腥婚g,這個(gè)承載了無數(shù)人回憶與時(shí)光的游戲品牌,已經(jīng)走到了第十幾個(gè)年頭。今天小編就來給大家嘗試做一款簡(jiǎn)單的簡(jiǎn)陋版的小游戲——《舞動(dòng)青春*炫舞》,感興趣的可以了解一下
    2022-12-12

最新評(píng)論