Is it not possible to define multiple constructors in Python?

constructor, python

Solution

Unlike Java, you cannot define multiple constructors. However, you can define a default value if one is not passed.

def __init__(self, city="Berlin"):
  self.city = city

Problem

Is it not possible to define multiple constructors in Python, with different signatures? If not, what's the general way of getting around it? For example, let's say you wanted to define a class `City`. I'd like to be able to say `someCity = City()` or `someCity = City("Berlin")`, where the first just gives a default name value, and the second defines it.

Original source

Related problems