2015-12-16 2 views
2

У меня есть следующий код (предполагая, что я печатаю в IDLE построчно)разница между переменным и печатью переменной

# -*- coding: utf-8 -*- 
s = u"My Currency is - £" 
s 
print s 

для - s - я получаю выход - u'My Currency is - \xa3'

для - print s - Я получаю выход - u'My Currency is - £'

В чем разница? Почему я получаю разные результаты?

ответ

3

В Python print показан результат __str__ по его аргументам, который может отличаться от __repr__. Более подробную информацию, смотрите здесь: Difference between __str__ and __repr__ in Python

+0

Не совсем, попробуйте вызывать явные 'str (s)' или '.. Str __()' и вы получите 'UnicodeEncodeError: 'ascii' кодек не может кодировать символы ...', но 'print 'отлично работает, поэтому' print' делает что-то большее. – user2622016