import functools
class Computer:
@functools.singledispatchmethod
def __init__(self, *parts):
self.parts = " *** ".join(parts)
@__init__.register
def _(self, parts: dict):
self.parts = parts.items()
@__init__.register
def _(self, parts: list):
self.parts = " - ".join(parts)
@__init__.register
def _(self, parts: int):
self.parts = parts
def get_parts(self):
return self.parts
pc1 = Computer("BIOS", "Power supply")
pc2 = Computer({"CPU": "3.0GHz", "RAM": "32GB"})
pc3 = Computer(["CPU", "RAM", "SSD"])
pc4 = Computer("Motherboard")
pc5 = Computer(99999)
print(pc1.get_parts())
print(pc2.get_parts())
print(pc3.get_parts())
print(pc4.get_parts())
print(pc5.get_parts())