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

Dla powyższego kodu, kiedy go używam. Będzie to wymagało dokładnie dwóch argumentów.Definiowanie klasy z opcjonalnym argumentem w języku Python

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

Ale co, jeśli chcę ustawić default value dla value2 dla exmaple, jego (value2) Wartość domyślna to '000'.

Następnym razem, gdy używam klasy, mogę albo wpisać

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

a.data będzie '123000'

Albo mogę wpisać

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

a.data będzie '123654'

Ho w, aby to osiągnąć? Dziękuję bardzo!

Odpowiedz

12

Spróbuj to proszę:

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) 

może być to rozwiązuje problem

6

Spróbuj definiowania default argument, jak tak.

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

Należy starać się nie odwołuje się do nowszej wersji dokumentacji Pythona. Python 1.x jest obecnie historyczną skamieliną. –

+0

Aby uzyskać wyjaśnienie, w którym punktem zwrotnym jest większość osób: http://www.network-theory.co.uk/docs/pytut/DefaultArgumentValues.html – XORcist

+0

@ Li-aungYip Doskonały punkt, zaktualizuję link. Pisałem z mojego telefonu, więc moje wymagania mogły być niedbałe. :) – cheeken

Powiązane problemy