轉殖模式也叫原型模式,通過拷貝自身的屬性來建立乙個新的物件。原型模式的乙個基本方法就是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...