LINUX.ORG.RU

История изменений

Исправление user_id_68054, (текущая версия) :

__builtins__ лучше не использовать

тогда предлагаю на обсуждение ещё вариант:

unicode_t = str if str is not bytes else unicode

s = get_text_with_some_code()

txt = None
if isinstance(s, unicode_t):
    txt = s
elif isinstance(s, bytes):
    txt = s.decode('utf-8')
else:
    do_something_else()

Исправление user_id_68054, :

__builtins__ лучше не использовать

тогда предлагаю на обсуждение ещё вариант:

if str is not bytes:
    # python 3
    unicode_t = str
else:
    # python 2
    unicode_t = unicode

s = get_text_with_some_code()

txt = None
if isinstance(s, unicode_t):
    txt = s
elif isinstance(s, bytes):
    txt = s.decode('utf-8')
else:
    do_something_else()

Исходная версия user_id_68054, :

__builtins__ лучше не использовать

тогда предлагаю на обсуждение ещё вариант:

if str is not bytes:
    # python 3
    unicode_t = str
else:
    unicode_t = unicode
    # python 2

s = get_text_with_some_code()

txt = None
if isinstance(s, unicode_t):
    txt = s
elif isinstance(s, bytes):
    txt = s.decode('utf-8')
else:
    do_something_else()