이 글에서는 주로 Python3 디자인 패턴의 간단한 팩토리 패턴을 자세히 소개하며, 관심 있는 친구들은 참고할 수 있습니다.
Python3 환경에서 디버깅은 다음을 정의하여 간단한 "Dahua 디자인 패턴" 팩토리 패턴을 구현합니다. 별도의 팩토리 클래스, 특정 제품의 인스턴스화 완료, 참조 링크
특정 구현 코드 보기:
#!/usr/bin/env python # -*- coding: utf-8 -*- # Date : 2017-10-15 21:46:28 # Author : John # Version : V1.001 # Func : class Operator(object): """docstring for Operator""" def __init__(self, NumberA=0, NumberB=0): super(Operator, self).__init__() self.NumberA = NumberA self.NumberB = NumberB def GetResult(self): pass class AddOp(Operator): """docstring for AddOp""" def GetResult(self): return int(float(self.NumberA) + float(self.NumberB)) class MinusOp(Operator): """docstring for MinusOp""" def GetResult(self): return int(float(self.NumberA) - float(self.NumberB)) class MultiOp(Operator): """docstring for MultiOp""" def GetResult(self): return int(float(self.NumberA) * float(self.NumberB)) class pideOp(Operator): """docstring for pideOp""" def GetResult(self): try: return float(float(self.NumberA) / float(self.NumberB) * 1.0) except ZeropisionError as e: print("pideOp error, {0}".format(e)) class OperatorFactory(object): """docstring for OperatorFactory""" def ChooseOperator(self, op): if op == '+': return AddOp() if op == '-': return MinusOp() if op == '*': return MultiOp() if op == '/': return pideOp() if __name__ == '__main__': ch = '' while not ch == 'q': NumberA = input('Please input NumberA: ') op = input('Please input operator: ') NumberB = input('Please input NumberB: ') factory = OperatorFactory() opType = factory.ChooseOperator(op) opType.NumberA = NumberA opType.NumberB = NumberB print('The result is: {0}'.format(opType.GetResult())) print('\n#-- input q to exit any key to continue') try: ch = str(input()) except Exception as e: print('Get input error: {0}'.format(e)) print('Use default value to ch') ch = ''
위 내용은 Python3의 간단한 팩토리 패턴 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!