use join, define reverse mapping of operator to string once, not for every invocation of __str__