["python","overloading"]
Methods with the same name in one class in Python

How can I declare a few methods with the same name, but with different numbers of parameters or different types in one class? What must I change in the following class? class MyClass: """""" #---------------------------------------------------------------------- def __init__(self): """Constructor""" def my_method(self,parameter_A_that_Must_Be_String): print parameter_A_that_Must_Be_String def my_method(self,parameter_A_that_Must_Be_String,parameter_B_that_Must_Be_String): print parameter_A_that_Must_Be_String print parameter_B_that_Must_Be_String def my_method(self,parameter_A_that_Must_Be_String,parameter_A_that_Must_Be_Int): print parameter_A_that_Must_Be_String * parameter_A_that_Must_Be_Int
You can have a function that takes in a variable number of arguments. def my_method(*args, **kwds): # Do something # When you call the method my_method(a1, a2, k1=a3, k2=a4) # You get: args = (a1, a2) kwds = {'k1':a3, 'k2':a4} So you can modify your function as follows: def my_method(*args): if len(args) == 1 and isinstance(args[0], str): # Case 1 elif len(args) == 2 and isinstance(args[1], int): # Case 2 elif len(args) == 2 and isinstance(args[1], str): # Case 3