Skip to content
Advertisement

more than one constructor in a python class

I come from the Java programming language and I know that you can have more than one constructor there.

My question now is: is that also possible in Python?

My Problem:

I have a class, where I have my help functions for my commands (implemented with click). These commands are not in the history class. Now my commands sometimes only have an input_dir and an output_file without a temp_file. Or just an input_dir and output_file.

How can I still use the same constructor with 3 or sometimes 2 input parameters?

Advertisement

Answer

There is no such thing as method overloading in python. Hence, it is impossible to have multiple constructors as you desire. You can however make the arguments optional.

class History():
    def __init__(self, input_dir=None, output_file=None, temp_file=None):
        self._input_dir = input_dir
        self._output_file = output_file
        self.temp_file = temp_file

    def identify_ID(self):
        '''Identifies the ID'''

This will alow any combination of your arguments to work. This would leave the method you are calling up to making sense of the instance’s variables.

User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement