On 05/10/13 20:26, Albert-Jan Roskam wrote:

General question: I am using pastebin now. Is that okay,

For code as short as this it's probably best kept with the message.
But once you get to 100+ lines its more debatable and if you get
to 200+ lines I'd definitely say a pastebin is better.

from __future__ import print_function
import sys

def decorate(cls):
     print("decorate called")
     if sys.version_info[0] > 2:
         cls.__dict__["__str__"].__name__ = '__bytes__'
         cls.__dict__["__unicode__"].__name__ = '__str__'
         cls.__bytes__ = cls.__dict__["__str__"]
         cls.__str__ = cls.__dict__["__unicode__"]
     return cls

@decorate
class Test(object):

     def __init__(self):
         self.__dict__["encoding"] = self.encoding

     def __str__(self):
         return "str called".encode(self.encoding)

     def __unicode__(self):
         return "unicode called"

     @property
     def encoding(self):
         """In reality this method extracts the encoding from a file"""
         return "utf-8" # rot13 no longer exists in Python3

if __name__ == "__main__":
     t = Test()
     if sys.version_info[0] == 2:
         print(unicode(t))
     print(str(t))

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to