EDIT2: आपकी सहायता के लिए सभी को धन्यवाद! संपादित करें: @staticmethod जोड़ने पर, यह काम करता है। हालांकि मैं अभी भी सोच रहा हूं कि मुझे यहां एक प्रकार की त्रुटि क्यों मिल रही है।पायथन में वर्ग से फ़ंक्शन को कॉल करना - अलग-अलग तरीके
मैंने अभी ओओपीएस शुरू कर दिया है और मैं पूरी तरह से नया हूं। मेरे पास एक वर्ग से एक समारोह को कॉल करने के विभिन्न तरीकों से संबंधित एक बहुत ही बुनियादी सवाल है।
class MathsOperations:
def __init__ (self, x, y):
self.a = x
self.b = y
def testAddition (self):
return (self.a + self.b)
def testMultiplication (self):
return (self.a * self.b)
मैं निम्नलिखित कोड के साथ main.py कहा जाता है किसी अन्य फ़ाइल से इस वर्ग के बोल रहा हूँ:
from testClass import MathsOperations
xyz = MathsOperations(2, 3)
print xyz.testAddition()
यह किसी भी मुद्दे के बिना काम करता मैं कोड के साथ एक testClass.py फ़ाइल है। हालांकि, मैं कक्षा को एक बहुत ही सरल तरीके से उपयोग करना चाहता था।
अब मैंने testClass.py फ़ाइल में निम्न कोड डाला है। मैंने इस बार इनिट फ़ंक्शन को छोड़ दिया है।
class MathsOperations:
def testAddition (x, y):
return x + y
def testMultiplication (a, b):
return a * b
इसका उपयोग करके कॉल करना;
from testClass import MathsOperations
xyz = MathsOperations()
print xyz.testAddition(2, 3)
यह काम नहीं करता है। क्या कोई बता सकता है कि 2 मामले में क्या गलत हो रहा है? मैं इस वर्ग का उपयोग कैसे करूं? ": TestAddition() लेता है वास्तव में ऐसे 2 तर्कों (3 दिए गए) लेखन त्रुटि"
तो क्या @staticmethod टैग स्वचालित रूप से स्वयं पैरामीटर में डालता है? –
यदि आप @staticmethod का उपयोग करते हैं तो आप उदाहरण के लिए पहले एक वैरिएबल घोषित किए बिना कक्षा का उपयोग कर सकते हैं, इस मामले में यदि आप MathOperation.testAddtion (2,3) का उपयोग करने का प्रयास करते हैं तो यह आपको एक त्रुटि देता है "TypeError: unbound method" –
नहीं, staticmethod सजावट स्वयं पैरामीटर की आवश्यकता को हटा देता है। –