Python не поддерживает возведение в степень (и другие математические операции) для кортежей.Хотя возможно иметь такой код:
print (1, 2) * 3 # produces (1, 2, 1, 2, 1, 2)
print (1, 2) + (1, 2) # produces (1, 2, 1, 2)
, это не векторные вычисления для всего кортежа.Это просто синтаксический сахар для конкатенации кортежей.
Также кажется, что во фрагменте есть несколько опечаток / ошибок.
Строка self.args=[Point(*args) for p in args]
должна быть скорее self.args=[Point(*p) for p in args]
Класс LineString
не имеет move()
метода.
И вычисление distance()
должно бытьнемного изменилось (обратите внимание, что я заменил -
на +
в формуле):
return math.sqrt((p1.x - p2.x)**2 + (p1.y - p2.y)**2)