#!/usr/bin/env python2 # -*- coding: utf-8 -*- #Zaimplementuj własny wyjątek ``DimensionError``, który zostaje wyrzucony, jeżeli dodawany punkt ma inny wymiar. class DimensionError(Exception): pass #Stwórz klasę ``Point``, która będzie reprezentować punkt w przestrzeni wielowymiarowej: class Point: # * Konstruktor ma przyjąc tylko 1 parametr: listę współrzednych. def __init__(self, vertexes): self.vertexes = vertexes #sprawdź, czy lista zawiera wyłącznie liczby. def is_numeric(vertexes): if isinstance(vertexes,(float,int))==True: pass else: print("list does not contain only numbers") #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. def add(self, newpoint): sum=[] if len(newpoint)!=len(self.vertexes): raise DimensionError("Dimensions does not match") else: for i in range(len(newpoint)): sum.append(self.vertexes[i] + newpoint[i]) return Point(sum) #Napisz metodę ``to\_string``, która zwróci łancuch znakowy, który w czytelny sposób przedstawi punkt. def to_string(self): return str(self.vertexes) def __to_string__(self): return self.to_string() #Napisz metodę __len__, która zwróci liczbę współrzędnych punktu. def how_many(self): return len(self.vertexes) def __len__(self): return self.how_many() #Zobacz, czy możesz teraz wywołać funkcję len na obiekcie typu punkt. figures = [2,1,3,4,2,7] my_point = Point(figures) no_of_coordinates=len(my_point) print("Number of coordinates: ") print(no_of_coordinates) #Wyświetl obiekt typy Point korzystając z funkcji print. print("Coordinates as a string: ") print(my_point.to_string()) B=[2,1,2,3,1] my_sum=Point(B) my_point.add(B)