इस तरह मान लीजिए कोड:ऑब्जेक्ट्स की सूची के लिए एक ही विधि को कैसे कॉल करें?
class Base:
def start(self):
pass
def stop(self)
pass
class A(Base):
def start(self):
... do something for A
def stop(self)
.... do something for A
class B(Base):
def start(self):
def stop(self):
a1 = A(); a2 = A()
b1 = B(); b2 = B()
all = [a1, b1, b2, a2,.....]
अब मैं तरीकों शुरू फोन और सभी की सूची में प्रत्येक वस्तु के लिए रोक (शायद भी अन्य) करना चाहते हैं। वहाँ की तरह
def start_all(all):
for item in all:
item.start()
def stop_all(all):
समारोह का एक समूह दो समारोह है में? – SilentGhost
यह आपके प्रश्न से असंबंधित नहीं है, लेकिन आपके उदाहरण में कोई स्पष्ट कारण नहीं है कि आपको उस बेस क्लास की आवश्यकता क्यों है। पाइथन आपको असंबद्ध वस्तुओं की एक सूची देने के लिए बहुत खुश होंगे और जब तक कि सभी के पास 'स्टार्ट' और 'स्टॉप' विधियां हों, तब भी आप विधियों को कॉल करने के माध्यम से फिर से चल सकते हैं। – Duncan
आपकी परिभाषित 'बेस' बेकार विधियों के साथ और फिर' ए 'और' बी 'में व्यवहार को परिभाषित करने से पाइथन में एक खराब डिज़ाइन दर्शाता है। एक अमूर्त बेस क्लास का उपयोग करने के बजाय, आप केवल 'ए' और 'बी' को परिभाषित कर सकते हैं और इंटरफ़ेस साझा करते समय उन्हें एक दूसरे के रूप में उपयोग कर सकते हैं। चीजों को करने का आपका वर्तमान तरीका एक बेकार वर्ग बनाता है, जो केवल अतिरिक्त सामान है जिसकी आपको आवश्यकता नहीं है। –