#ćwiczenie 3 (zadanie domowe) ** Stwórz klasę Point, która będzie reprezentować punkt w przestrzeni wielowymiarowej: #Konstruktor ma przyjąc tylko 1 parametr: listę współrzednych. Wykorzystaj funkcję z pierwszego zadania, żeby sprawdzić, czy lista zawiera wyłącznie liczby. #Napisz metodę add, która doda dwa punkty po współrzędnych i zwróci obiekt typu Punkt. Zaimplementuj własny wyjątek DimensionError, który zostaje wyrzucony, jeżeli dodawany punkt ma inny wymiar. #Napisz metodę to\_string, która zwróci łancuch znakowy, który w czytelny sposób przedstawi punkt. #Napisz metodę len, która zwróci liczbę współrzędnych punktu. Zobacz, czy możesz teraz wywołać funkcję len na obiekcie typy punkt. #Napisz metodę str, która bedzie działać dokładnie tak samo jak metoda to_string. Wyświetl obiekt typy Point korzystając z funkcji print. #funkcja z pierwszego zadania, żeby sprawdzić, czy lista zawiera wyłącznie liczby def is_numeric(list): for i in list: if (isinstance(i, (int, float)) == True): return True else: return False # wyjątek DimensionError, który zostaje wyrzucony, jeżeli dodawany punkt ma inny wymiar class DimensionError(Exception): def __init__(self, text): self.text = text # klasa class Point: def __init__(self, coordinates): if len(coordinates) != 3: raise DimensionError('Wrong coordinates') else: self.coordinates = coordinates # funkcja add, która doda dwa punkty do współrzędnych i zwróci obiekt typu Punkt def add(c1, c2): coordinates = [] if len(c1) != len(c2): for i in range(0, len(c1)): coordinates.append(c1[i]+c2[i]) return coordinates # funkcja to_string, która zwróci łancuch znakowy, def to_string(self): return '(' + ', '.join(map(str, self.coordinates)) + ')' # funkcja str, która bedzie działać dokładnie tak samo jak metoda to_string def __str__(self): return self.to_string() # metoda len, która zwróci liczbę współrzędnych punktu def __len__(self): return len(self.coordinates) point = Point([1,5,6]) print(point.coordinates)