97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

長春網長春網絡推廣站排名做名片用哪個網站

鶴壁市浩天電氣有限公司 2026/01/24 19:16:29
長春網長春網絡推廣站排名,做名片用哪個網站,全國前十名小程序開發(fā)公司,微信小程序開發(fā)用什么語言Python 中的原型模式#xff08;Prototype Pattern#xff09; 原型模式是一種創(chuàng)建型設計模式#xff0c;其核心思想是#xff1a; 用一個已存在的對象#xff08;原型#xff09;作為模板#xff0c;通過復制#xff08;克隆#xff09;來創(chuàng)建新的對象#xff0c;而…Python 中的原型模式Prototype Pattern原型模式是一種創(chuàng)建型設計模式其核心思想是用一個已存在的對象原型作為模板通過復制克隆來創(chuàng)建新的對象而不是通過new或構造函數(shù)重新創(chuàng)建。適用場景創(chuàng)建對象代價高昂需要大量初始化、IO、網絡請求等對象結構復雜但大部分屬性相似只需微調希望避免顯式構造函數(shù)參數(shù)爆炸需要快速生成大量相似對象如游戲中的怪物、UI 組件、報表模板等原型模式的優(yōu)點隱藏創(chuàng)建細節(jié)客戶端只需調用clone()性能好復制比重新構建快得多方便擴展只需克隆再修改Python 中的實現(xiàn)方式Python 提供了非常方便的內置支持copy模塊中的copy()淺拷貝和deepcopy()深拷貝以及__copy__、__deepcopy__鉤子。1. 最簡單的原型模式使用copy.deepcopy()importcopyclassPrototype:def__init__(self,name,age,skills):self.namename self.ageage self.skillsskills# 列表深拷貝時會復制defclone(self):returncopy.deepcopy(self)def__str__(self):returnf{self.name}({self.age}), skills:{self.skills}# 使用if__name____main__:originalPrototype(Alice,28,[Python,Java,SQL])clone1original.clone()clone1.nameBobclone1.age30clone1.skills.append(Go)clone2original.clone()clone2.nameCharlieprint(Original:,original)print(Clone1: ,clone1)print(Clone2: ,clone2)輸出Original: Alice (28), skills: [Python, Java, SQL] Clone1: Bob (30), skills: [Python, Java, SQL, Go] Clone2: Charlie (28), skills: [Python, Java, SQL]2. 更優(yōu)雅的方式自定義__copy__和__deepcopy__importcopyclassEmployee:def__init__(self,name,department,projects):self.namename self.departmentdepartment self.projectsprojects# 列表def__copy__(self):# 淺拷貝只復制對象本身列表引用共享newself.__class__.__new__(self.__class__)new.__dict__.update(self.__dict__)returnnewdef__deepcopy__(self,memoNone):# 深拷貝遞歸復制所有可變對象newself.__class__.__new__(self.__class__)new.__dict__.update({name:self.name,department:self.department,projects:copy.deepcopy(self.projects,memo)})returnnewdefclone(self,deepFalse):returncopy.deepcopy(self)ifdeepelsecopy.copy(self)def__str__(self):returnf{self.name}in{self.department}, projects:{self.projects}# 測試empEmployee(Alice,Engineering,[Project A,Project B])# 淺拷貝emp_shallowemp.clone(deepFalse)emp_shallow.nameBobemp_shallow.projects.append(Project C)print(Original:,emp)print(Shallow clone:,emp_shallow)# projects 列表是共享的# 深拷貝emp_deepemp.clone(deepTrue)emp_deep.nameCharlieemp_deep.projects.append(Project D)print(Original (unchanged):,emp)print(Deep clone:,emp_deep)輸出Original: Alice in Engineering, projects: [Project A, Project B, Project C] Shallow clone: Bob in Engineering, projects: [Project A, Project B, Project C] Original (unchanged): Alice in Engineering, projects: [Project A, Project B, Project C] Deep clone: Charlie in Engineering, projects: [Project A, Project B, Project D]3. 原型管理器Prototype Registry—— 注冊原型并按名稱克隆importcopyclassPrototypeRegistry:def__init__(self):self._prototypes{}defregister(self,name,prototype):self._prototypes[name]prototypedefunregister(self,name):delself._prototypes[name]defclone(self,name,**attrs):prototypeself._prototypes[name]clonecopy.deepcopy(prototype)clone.__dict__.update(attrs)# 覆蓋或添加屬性returnclone# 使用if__name____main__:registryPrototypeRegistry()# 注冊幾種模板registry.register(basic_car,Car(Basic Car,Sedan,Red,100000))registry.register(sports_car,Car(Sports Car,Coupe,Black,300000))# 克隆并修改car1registry.clone(basic_car,colorBlue,price120000)car2registry.clone(sports_car,nameFerrari,colorYellow,price500000)print(car1)print(car2)原型模式 vs 其他創(chuàng)建型模式對比模式適用場景是否需要構造函數(shù)工廠方法根據(jù)類型創(chuàng)建不同對象是抽象工廠創(chuàng)建一組相關對象是建造者復雜對象一步步構建否鏈式原型復制已有對象尤其是初始化代價高否直接 clonePython 中的實際推薦大多數(shù)情況下直接用copy.deepcopy()就夠了。需要控制淺/深拷貝行為時自定義__copy__和__deepcopy__。需要管理多種模板時使用原型注冊器Registry。真實項目中的例子游戲開發(fā)克隆怪物、技能、物品報表系統(tǒng)克隆報表模板再修改標題、字段圖形編輯器復制圖形對象機器學習復制模型配置再微調如果你想看更復雜的例子如游戲角色原型、圖形對象克隆、結合其他模式的實現(xiàn)隨時告訴我
版權聲明: 本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若內容造成侵權/違法違規(guī)/事實不符,請聯(lián)系我們進行投訴反饋,一經查實,立即刪除!

wordpress政企網站服務器網站開發(fā)過程

wordpress政企網站,服務器網站開發(fā)過程,上海待遇好的十大國企排名,網站生成app客戶端深夜#xff0c;你向一個AI傾訴痛苦#xff0c;它精準地識別了你的抑郁情緒#xff0c;但無法感知你淚

2026/01/21 19:31:01

高端網站定制設計公司手機排名

高端網站定制設計公司,手機排名,杭州市下城區(qū)建設局門戶網站,wordpress 內網訪問目錄具體實現(xiàn)截圖項目介紹論文大綱核心代碼部分展示項目運行指導結論源碼獲取詳細視頻演示 #xff1a;文章底部獲取

2026/01/23 05:43:01

網站上傳教程中國建設銀行假網站

網站上傳教程,中國建設銀行假網站,俄羅斯電商平臺有哪些,安徽城鄉(xiāng)與建設部網站文章目錄1. 實戰(zhàn)概述2. 實戰(zhàn)步驟3. 實戰(zhàn)總結1. 實戰(zhàn)概述 本實戰(zhàn)通過Hive對三個含重復IP的文本文件進行去重處理

2026/01/23 05:58:01

南京網站制作搭建圖片類的wordpress

南京網站制作搭建,圖片類的wordpress,網站排名如何做,哪個網站做化妝品效果好LangFlowSAT閱讀理解題目生成嘗試 在教育科技快速演進的今天#xff0c;如何高效、高質量地生成標準化考試題

2026/01/23 16:44:01

二維碼的網站如何做英文網站建

二維碼的網站如何做,英文網站建,吉林省建設標準化網站,網站代碼怎么改多項式算術及其應用 在數(shù)學和計算機科學領域,多項式算術有著廣泛的應用。本文將深入探討多項式矩陣乘法、有理函數(shù)重構及其應用,以及更快

2026/01/21 13:10:01