2012-05-21 7 views
10
class class1(): 
    def setdata(self,value1, value2): 
    self.data = value1+value2 
def display(self): 
    print(self.data) 

पर वैकल्पिक तर्क वाले वर्ग को परिभाषित करें उपरोक्त कोड के लिए, जब मैं इसका उपयोग करता हूं। इसे बिल्कुल दो तर्कों की आवश्यकता होगी।पाइथन

>>>a = class1() 
>>>a.setdata('123','456') 

लेकिन क्या मैं स्थापित करने के लिए एक default valuevalue2 के लिए, उदाहरण के लिए, अपने (value2) डिफ़ॉल्ट मान '000' है चाहते हैं।

अगली बार जब मैं क्लास का उपयोग, मैं टाइप या तो कर सकते हैं

>>>a = class1() 
>>>a.setdata('123') 

a.data हो जाएगा '123000'

या मैं टाइप कर सकते हैं

>>>a = class1() 
>>>a.setdata('123','654') 

a.data'123654'

हो जाएगा हो इसे प्राप्त करने के लिए डब्ल्यू? बहुत बहुत धन्यवाद!

उत्तर

12

कृपया इस प्रयास करें:

def setdata(self, value1, value2 = '000'): 
    Your code here 
3
class class1:  
    def setdata(self,value1, value2=456): 
     self.data = value1+value2 
    def display(self): 
     print(self.data) 

हो सकता है यह आपकी समस्या

6

एक default argument को परिभाषित है, तो जैसे प्रयास करें हल करती है।

class class1(): 
    def setdata(self,value1, value2='000'): 
     ... 
+3

आप अजगर प्रलेखन के एक नए संस्करण से जोड़ने के लिए प्रयास करना चाहिए। पाइथन 1.x इन दिनों एक ऐतिहासिक जीवाश्म है। –

+0

उस बिंदु सहित एक स्पष्टीकरण के लिए जहां अधिकांश लोग यात्रा करते हैं: http://www.network-theory.co.uk/docs/pytut/DefaultArgumentValues.html – XORcist

+0

@ ली-औंगवाईप उत्कृष्ट बिंदु, मैं लिंक अपडेट करूंगा। मैं अपने फोन से पोस्ट कर रहा था, इसलिए मेरी आवश्यकताएं ढीली हो सकती हैं। :) – cheeken