मेरे पास आधार सार वर्ग और 2 बाल वर्ग ( Reader_a और Writer_a) हैं। मेरे पास कक्षाओं का एक और सेट है (पाठक_बी, लेखक_बी) जो समान आधार वर्ग से प्राप्त होता है। लेखक_ए लेखक_बी और पाठक_ए और पाठक_बी एक ही उद्देश्य की पूर्ति करते हैं लेकिन विभिन्न प्रकार की छवियों को संभालते हैं, मूल रूप से उनके अलग-अलग बैकएंड होते हैं। क्या पाइथन में कोई कार्यक्षमता है जिसके द्वारा मैं इन वर्गों को किस छवि प्रकार उपयोगकर्ता इनपुट के आधार पर स्विच कर सकता हूं?

-1
war_wick 15 अगस्त 2020, 08:31

1 उत्तर

सबसे बढ़िया उत्तर

मैं बेस क्लास में दो फैक्ट्री (स्थिर) विधियों को जोड़ूंगा जो कि प्रकार की जांच करेंगे और तदनुसार सही बाल वर्ग तैयार करेंगे।

class Base:
    @staticmethod
    def create_reader(image):
        if image == 'A':
            return Reader_a()
        elif image == 'B':
            return Reader_b()
        else:
            raise Exception('Unknown image')

    @staticmethod
    def create_writer(image):
        if image == 'A':
            return Writer_a()
        elif image == 'B':
            return Writer_b()
        else:
            raise Exception('Unknown image')
1
Damiox 15 अगस्त 2020, 06:11