Лучший тип вывода и методы кодирования для функций __repr __ ()?

В последнее время у меня было много проблем с__repr__(), format()и кодировки.Если выход__repr__() быть закодирован или быть строкой Unicode? Есть ли лучшая кодировка для результата__repr__() в питоне? То, что я хочу вывести, имеет символы не ASCII.

Я использую Python 2.x и хочу написать код, который можно легко адаптировать к Python 3. Таким образом, программа использует

# -*- coding: utf-8 -*-
from __future__ import unicode_literals, print_function  # The 'Hello' literal represents a Unicode object

Вот некоторые дополнительные проблемы, которые беспокоили меня, и я ищу решение, которое решает их:

Печать на терминал UTF-8 должна работать (у меня естьsys.stdout.encoding установлен вUTF-8, но было бы лучше, если бы другие случаи работали тоже).Передача выходных данных в файл (закодированный в UTF-8) должна работать (в этом случаеsys.stdout.encoding являетсяNone).Мой код для многих__repr__() функции в настоящее время имеет многоreturn ….encode('utf-8')и это тяжело. Есть ли что-нибудь крепкое и легкое?В некоторых случаях у меня даже есть такие уродливые звери, какreturn ('<{}>'.format(repr(x).decode('utf-8'))).encode('utf-8')то есть представление объектов декодируется, помещается в строку форматирования и затем перекодируется. Я хотел бы избежать таких запутанных преобразований.

Что бы вы порекомендовали сделать, чтобы написать простой__repr__() функции, которые ведут себя хорошо по отношению к этим вопросам кодирования?

Ответы на вопрос(3)

Ваш ответ на вопрос