#!/bin/env python import math # sqrt import operator # operators as functions class Vector(object): # constructor def __init__(self, coord): self.coord = coord # turns the object into string def __str__(self): return str(self.coord) def __abs__(self): '''Vector length (Euclidean norm).''' return math.sqrt(sum(x*x for x in self.coord)) def __add__(self, other): '''Vector addition.''' return map(operator.add, self.coord, other.coord) if __name__ == "__main__": v1 = Vector(range(5)) print("Vector: ", str(v1)); print(Vector.__abs__.__doc__, abs(v1)) print(Vector.__add__.__doc__, v1 + v1)