Python設計模式 轉殖模式

2021-10-04 12:14:39 字數 862 閱讀 2776

轉殖模式也叫原型模式,通過拷貝自身的屬性來建立乙個新的物件。原型模式的乙個基本方法就是clone,在c++中屬於深拷貝。

from copy import copy,deepcopy

class

person

:def

__init__

(self,name,age)

: self.__name = name

self.__age = age

defshowinfo

(self)

:print

("我是"

+self.__name+

",今年年齡是"

+str

(self.__age)

+"歲"

)def

clone

(self)

:return copy(self)

deftest()

: tom = person(

"tom",27

) tom.showinfo();

jeery=tom.clone();

jeery.showinfo();

test(

)

執行結果:

我是tom,今年年齡是27歲

我是tom,今年年齡是27歲

python中的淺拷貝只拷貝引用型別物件的指標,而不會拷貝引用型別物件指向的值;深拷貝則同時拷貝應用物件的及其執行的值。

列表(list)、字典(dictionary)、類隊形,預設的是淺拷貝。

通過轉殖的方式建立物件,不會執行類的初始化韓式(__init __)

aaa

PHP設計模式 轉殖模式

轉殖模式 轉殖模式是通過記憶體拷貝的方法拷貝父本物件的所有屬性,分配一塊新的記憶體空間給新的物件,比 new 的方式建立物件效能更好。通過轉殖的方式建立物件,不會執行類的建構函式。結構 使用clone方法 示例 以轉殖乙個人為例 class test public function myself 年...

原型模式(轉殖模式)

轉殖模式最突出的優點就是,不用建立新的物件,省時間,效率高。適合需要一下子新建很多類的情況 轉殖模式分為兩種,淺轉殖和深轉殖 實現 cloneable可以實現轉殖 淺轉殖就是不能轉殖物件屬性,兩者公用乙個物件屬性位址 字串比較特殊,是不可改變物件,所以可以不看做物件 public class she...

Python設計模式 狀態設計模式

狀態設計模式的簡單示例 優缺點乙個物件可以基於其內部狀態封裝多個行為。狀態模式可以看作在執行時改變物件行為的一種方式。以收音機為例進行說明。收音機具有am fm 切換開關 兩種調頻方式和乙個掃瞄按鈕。因此根據收音機的基本狀態 am fm 當調諧到am或fm頻道時,掃瞄按鈕的行為就會動態的改變。con...