Python 디자인 모델 의 원형 모델 실례 상세 설명

본 논문 의 사례 는 Python 디자인 모델 의 원형 모델 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
프로 토 타 입 모드(Prototype Pattern):프로 토 타 입 인 스 턴 스 로 생 성 대상 의 종 류 를 지정 하고 이 프로 토 타 입 을 복사 하여 새로운 대상 을 만 듭 니 다.
원형 모드 의 간단 한 demo:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
      
    ――    
    (Prototype Pattern):              ,                
        :                            
"""
from copy import copy, deepcopy
#      
class Prototype(object):
  def clone(self):
    pass
  def deep_clone(self):
    pass
#      
class WorkExperience(object):
  def __init__(self):
    self.timearea = ''
    self.company = ''
  def set_workexperience(self,timearea, company):
    self.timearea = timearea
    self.company = company
#      
class Resume(Prototype):
  def __init__(self,name):
    self.name = name
    self.workexperience = WorkExperience()
  def set_personinfo(self,sex,age):
    self.sex = sex
    self.age = age
    pass
  def set_workexperience(self,timearea, company):
    self.workexperience.set_workexperience(timearea, company)
  def display(self):
    print self.name
    print self.sex, self.age
    print '    ',self.workexperience.timearea, self.workexperience.company
  def clone(self):
    return copy(self)
  def deep_clone(self):
    return deepcopy(self)
if __name__ == '__main__':
  obj1 = Resume('andy')
  obj2 = obj1.clone() #      
  obj3 = obj1.deep_clone() #      
  obj1.set_personinfo(' ',28)
  obj1.set_workexperience('2010-2015','AA')
  obj2.set_personinfo(' ',27)
  obj2.set_workexperience('2011-2017','AA') #             
  obj3.set_personinfo(' ',29)
  obj3.set_workexperience('2016-2017','AA') #              
  obj1.display()
  obj2.display()
  obj3.display()

실행 결과:
andy
남자
경력 2011-2017 AA
andy
남자
경력 2011-2017 AA
andy
남자
경력 2016-2017 AA
상류의 디자인 은 다음 과 같다.

이력서 류 Resume 은 추상 적 인 원형 인 clone 과 deepclone 방법 을 계승 하여 이력서 류 에 대한 복 제 를 실현 하고 이력서 류 는 업무 경력 류 를 인용 하여 이력서 류 를 복사 하 는 동시에 부분 속성 을 수정 할 수 있 습 니 다.
더 많은 파 이 썬 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기