मेरे पास दो वर्ग हैं जिनमें मेरे पास एक फ़ंक्शन है जो संख्या की गिनती प्रिंट करता है। दोनों वर्गों के अंदर मैं सही होने पर उपयोग कर रहा हूं।

परीक्षण 1:-

first.py -
class first:
    count = 0
    def firstm(self):
        while True:
            print("First Class Method : ",self.count)
second.py -
class second:
    count = 0
    def secondm(self):
        while True:
            print("Second Class Method : ",self.count)

 run.py -  
 from first import first
 from second import second

 class run:
     def runmethod(self):
        while True:
            first().firstm()
            second().secondm()

run().runmethod()

Output -
    First Class : 0
First Class : 1
First Class : 2
First Class : 3
First Class : 4
First Class : 5
First Class : 6
First Class : 7
First Class : 8
First Class : 9
    First Class : 0
First Class : 1
First Class : 2
First Class : 3
First Class : 4
First Class : 5
First Class : 6
First Class : 7
First Class : 8
First Class : 9
    First Class : 0
First Class : 1
First Class : 2
First Class : 3
First Class : 4
First Class : 5

Here it keep on repeating the first class method only.

उपरोक्त कोड में प्रोग्राम केवल प्रथम श्रेणी प्रथम विधि के लिए चलता है। यह अगली कक्षा में नहीं जाएगा।

परीक्षण २:-

first.py -
class first:
    count = 0
    @classmethod
    def firstm(self):
        for i in range(0,10):
            print("First Class Method : ",self.count)

second.py -
class second:
    @classmethod
    def secondm(self):
        for i in range(0,10):
            print("Second Class Method : ",i)

run.py- 
from first import first
from second import second

class run:
    def runmethod(self):
        while True:
            first.firstm()
            second.secondm()

run().runmethod()

Output -
First Class : 0
First Class : 1
First Class : 2
First Class : 3
First Class : 4
First Class : 5
First Class : 6
First Class : 7
First Class : 8
First Class : 9
Second Class : 0
Second Class : 1    
Second Class : 2
Second Class : 3
Second Class : 4
Second Class : 5
Second Class : 6
Second Class : 7
Second Class : 8
Second Class : 9
Third Class : 0
Third Class : 1
Third Class : 2
Third Class : 3
Third Class : 4
Third Class : 5
Third Class : 6
Third Class : 7
Third Class : 8
Third Class : 9
Fourth Class : 0
Fourth Class : 1
Fourth Class : 2
Fourth Class : 3
Fourth Class : 4
Fourth Class : 5
Fourth Class : 6
Fourth Class : 7
Fourth Class : 8
Fourth Class : 9
After this it won't print anything

दूसरे परीक्षण में यह केवल एक बार कोड चलाता है और फिर रुक जाता है।

परीक्षण 3:-

first.py -
class first:
    count = 0
    def firstm(self):
        for i in range(0,10):
            print("First Class Method : ",self.count)

second.py -
class second:
    def secondm(self):
        for i in range(0,10):
            print("Second Class Method : ",i)

run.py-
from first import first
from second import second

class run:
    def runmethod(self):
        while True:
            first().firstm()
            second().secondm()

run().runmethod()

Output - 
First Class : 0
First Class : 1
First Class : 2
First Class : 3
First Class : 4
First Class : 5
First Class : 6
First Class : 7
First Class : 8
First Class : 9
Second Class : 0
Second Class : 1    
Second Class : 2
Second Class : 3
Second Class : 4
Second Class : 5
Second Class : 6
Second Class : 7
Second Class : 8
Second Class : 9
Third Class : 0
Third Class : 1
Third Class : 2
Third Class : 3
Third Class : 4
Third Class : 5
Third Class : 6
Third Class : 7
Third Class : 8
Third Class : 9
Fourth Class : 0
Fourth Class : 1
Fourth Class : 2
Fourth Class : 3
Fourth Class : 4
Fourth Class : 5
Fourth Class : 6
Fourth Class : 7
Fourth Class : 8
Fourth Class : 9
    First Class : 0
First Class : 1
First Class : 2
First Class : 3
First Class : 4
First Class : 5
First Class : 6
First Class : 7
First Class : 8
First Class : 9
Second Class : 0
Second Class : 1    
Second Class : 2
Second Class : 3
Second Class : 4
Second Class : 5
Second Class : 6
Second Class : 7
Second Class : 8
Second Class : 9
Third Class : 0
Third Class : 1
Third Class : 2
Third Class : 3
Third Class : 4
Third Class : 5
Third Class : 6
Third Class : 7
Third Class : 8
Third Class : 9
Fourth Class : 0
Fourth Class : 1
Fourth Class : 2
Fourth Class : 3
Fourth Class : 4
Fourth Class : 5
Fourth Class : 6
Fourth Class : 7
Fourth Class : 8
Fourth Class : 9
First Class : 0
First Class : 1
First Class : 2
First Class : 3
First Class : 4
First Class : 5
First Class : 6
First Class : 7
First Class : 8
First Class : 9
Second Class : 0
Second Class : 1    
Second Class : 2
Second Class : 3
Second Class : 4
Second Class : 5
Second Class : 6
Second Class : 7
Second Class : 8
Second Class : 9
Third Class : 0
Third Class : 1
Third Class : 2
Third Class : 3
Third Class : 4
Third Class : 5
Third Class : 6
Third Class : 7
Third Class : 8
Third Class : 9
Fourth Class : 0
Fourth Class : 1
Fourth Class : 2
Fourth Class : 3
Fourth Class : 4
Fourth Class : 5
Fourth Class : 6
Fourth Class : 7
Fourth Class : 8
Fourth Class : 9
First Class : 0
First Class : 1
First Class : 2
First Class : 3
First Class : 4
First Class : 5
First Class : 6
First Class : 7
First Class : 8
First Class : 9
Second Class : 0
Second Class : 1    
Second Class : 2
Second Class : 3

तीसरे परीक्षण में मुझे आउटपुट सही ढंग से मिल रहा है लेकिन यह दोनों वर्गों की कई वस्तुएं बनाता है।

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

कृपया मुझे बताएं कि इसे कैसे संभालना है या इसे करने का कोई बेहतर तरीका है।

-2
User 29 मार्च 2018, 20:59

2 जवाब

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

आपके ट्रायल -1 के अंदर हम लूप के चलने की संख्या को नियंत्रित करने के लिए काउंट वेरिएबल का उपयोग कर सकते हैं। हम प्रत्येक वर्ग के गिनती चर को बढ़ा सकते हैं और कक्षा को केवल तब तक चला सकते हैं जब तक कि कोई निश्चित शर्त सही न हो। एक बार शर्त गलत होने पर हम कक्षा से बाहर हो सकते हैं।

first.py -
class first:
    count = 0
    def firstm(self):
        while self.count<10:
            print("First Class Method : ",self.count)
            self.count = self.count+1
second.py -
class second:
    count = 0
    def secondm(self):
        while self.count<10:
            print("Second Class Method : ",self.count)
            self.count = self.count+1

run.py -  
from first import first
from second import second

 class run:
     def runmethod(self):
        while True:
            first().firstm()
            second().secondm()

run().runmethod()
0
Shantanu Nandan 7 अप्रैल 2018, 02:24

कोड के तीसरे ब्लॉक के लिए ऐसा करें। यह आपको वह मिलना चाहिए जो आप चाहते हैं।

class run:
    def runmethod(self):
        for i in range(2):
            first().firstm()
            if i == 1:
                break
            second().secondm()
0
Israel Gboluwaga 29 मार्च 2018, 18:20