Но там, где это должно работать (сайтик с задачками), оно не работает. Как мне переписать этот код, чтобы избавиться от этой ошибки непонятного генезиса?
Есть подозрение, что проверка результатов в тестовом окружении реализована путем вызова метода .equals(). Поэтому сделайте так:
1) реализуйте метод Vector.equals(self,other) в вашем классе (равен ли вектор другому вектору)
2) в методах Vector.add(...), Vector.subtract(...) возвращайте не список, а вектор (экземпляр класса Vector)
3) перепишите методы Vector.dot(...) и Vector.norm(...). Если они должны реализовывать скалярное произведение и норму, то почему они возвращают списки, а не числа?
И в чем смысл этих строк, я так и не понял:
self.victor = victor
, вы, вроде, нигде не используете self.victor.