class Test(object): def __init__(self, val, u=False): self.val = val if u: self.__unicode__ = self._do_uni def __unicode__(self): return 'blah!' def _do_uni(self): return unicode(self.val) if __name__ == "__main__": print unicode(Test('u', True)) print unicode(Test('s', False))