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

Per il codice sopra, quando lo uso. Richiederà esattamente due argomenti.Definire una classe con argomento opzionale in Python

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

Ma cosa succede se voglio impostare un default value per value2, per exmaple, la sua (value2) valore di default è '000'.

La prossima volta quando uso la classe, posso entrambi i tipi

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

a.data sarà '123000'

O posso digitare

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

a.data sarà '123654'

Ho w per raggiungere questo? Grazie mille!

risposta

12

Prova questo per favore:

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) 

può essere il problema viene risolto

6

Prova la definizione di un default argument, in questo modo.

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

Si dovrebbe cercare di collegare a una versione più recente della documentazione Python. Python 1.x è un fossile storico in questi giorni. –

+0

Per una spiegazione che includa il punto in cui la maggior parte delle persone inciampa: http://www.network-theory.co.uk/docs/pytut/DefaultArgumentValues.html – XORcist

+0

@ Li-aungYip Punto eccellente, aggiornerò il collegamento. Stavo postando dal mio telefono, quindi i miei requisiti potrebbero essere stati negligenti. :) – cheeken

Problemi correlati