搜尋

首頁  >  問答  >  主體

编程语言 - Python 变量名有点类似于 C 的指针,这样有什么好处吗?

看了下,解释说这是「享元模式」,还是不太理解,求问这样有什么好处,毕竟这样基于对象的要占用好多内存的。

ringa_leeringa_lee2768 天前422

全部回覆(3)我來回復

  • 阿神

    阿神2017-04-17 13:47:01

    享元模式(英文:Flyweight Pattern)是一種軟體設計模式。它使用共享物件,用來盡可能減少記憶體使用量以及分享資訊給盡可能多的相似物件;它適合用於只是因重複而導致使用無法令人接受的大量記憶體的大量物件。通常物件中的部分狀態是可以分享。常見做法是把它們放在外部資料結構,當需要使用時再將它們傳遞給享元。

    回覆
    0
  • 迷茫

    迷茫2017-04-17 13:47:01

    如果你在一個程式裡大量用到了某一個整數,比如1,假設這個整數物件佔用記憶體100kB,而你用了100萬次,那麼這些1佔用的記憶體仍然是100kB。

    如果是32位元機器上的C語言,一個整數4byte,100萬個整數佔用的記憶體大小是4B * 1000k,也就是4MB。

    怎麼說呢,這個特性不能說是好處,也不能說是壞處,這兩種模式在不同的場景下各有優劣。

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 13:47:01

    省內存唄。變數之間,或實參形參之間傳遞的時候不用重新複製一份。想到寫c++的時候,一不注意就可能複製一份很大的vector也是醉了。

    回覆
    0
  • 取消回覆