Überladen von Operatoren

class Fraction:
  def __init__(self, n, d):
    self.n, self.d=n, d
  def __repr__(self):
    return "%d/%d" % (self.n, self.d)
  def __add__(self, a):
    return Fraction(self.n*a.d+self.d*a.n, self.d*a.d)
>>> Fraction(1,2)
1/2
>>> Fraction(1,2)+Fraction(3,2)
8/4

Nahezu jeder Python-Operator kann überladen werden; auf diese Weise können Klassen die Eigenschaften numerischer Datentypen, Listen, Dictionaries etc. annehmen