Define a class with optional argument in Python

2019-04-05 16:53发布

问题:

class class1():
    def setdata(self,value1, value2):
    self.data = value1+value2
def display(self):
    print(self.data)

For the above code, when I use it. It will require exactly two arguments.

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

But what if I want to set a default value for value2, for exmaple, its(value2) default value is '000'.

Next time when I use the class, I can either type

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

a.data will be '123000'

Or I can type

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

a.data will be '123654'

How to achieve this? Thanks very much!

回答1:

Try this please:

def setdata(self, value1, value2 = '000'):
   Your code here


回答2:

Try defining a default argument, like so.

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


回答3:

class class1:    
    def setdata(self,value1, value2=456):
        self.data = value1+value2
    def display(self):
        print(self.data)

may be this solves your problem