• about super().__call__(*args,**kwargs)


class Singleton(type):

def __call__(cls, *args, **kwargs):
    if cls.instance is None:
        cls.instance = super().__call__(*args, **kwargs) 
    return cls.instance

class Capital(metaclass=Singleton): instance=None def init(self, cityname): self.cityname = city_name

def name(self):
    return self.city_name

In the CapitalCity answers I saw codes like above. I have difficulty in understanding what is happening in the 4th line.


I've searched and understood super() here refers to class 'type'. I thought this line is bizarre, because although call method requires information about the type of instance to be instantiated, there seems to be no information about that.

I would appreciate it if someone could explain about this.