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

Für den obigen Code, wenn ich es benutze. Es erfordert genau zwei Argumente.Definieren Sie eine Klasse mit optionalem Argument in Python

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

Aber was ist, wenn ich ein default value für value2, für exmaple einstellen will, sein (value2) Standardwert '000' ist.

Das nächste Mal, wenn ich die Klasse zu verwenden, ich entweder

eingeben können
>>>a = class1() 
>>>a.setdata('123') 

a.data'123000'

wird, oder kann ich geben

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

a.data wird '123654'

sein Ho w um das zu erreichen? Vielen Dank!

Antwort

12

Versuchen Sie dies bitte:

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) 

kann dies Ihr Problem löst

6

Versuchen Sie, eine default argument definieren, wie so.

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

Sie sollten versuchen, auf eine neuere Version der Python-Dokumentation zu verknüpfen. Python 1.x ist heutzutage ein historisches Fossil. –

+0

Für eine Erklärung einschließlich der Punkt, wo die meisten Menschen stolpern: http://www.network-theory.co.uk/docs/pytut/DefaultArgumentValues.html – XORcist

+0

@ Li-aungYip Ausgezeichneter Punkt, ich werde den Link aktualisieren. Ich habe von meinem Telefon aus gepostet, also waren meine Anforderungen möglicherweise lax. :) – cheeken

Verwandte Themen