|
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()) |