Original title: "Help me understand this weird Python idiom? sys.stdout = codecs.getwriter(\'utf-8\')(sys.stdout)"
Original title:
"Help me understand this weird Python idiom? sys.stdout = codecs.getwriter(\'utf-8\')(sys.stdout)"
sys.stdout = codecs.getwriter(\'utf-8\')(sys.stdout)
codecs.getwriter('utf-8') returns a class with StreamWriter behaviour and whose objects can be initialized with a stream.
codecs.getwriter('utf-8')
StreamWriter
>>> codecs.getwriter('utf-8')
Thus, you are doing something similar to:
sys.stdout = StreamWriter(sys.stdout)