2013-12-11 3 views
3
>>> foo = 1 
>>> type(foo) 
<type 'int'> 
>>> type(str(foo)) 
<type 'str'> 
>>> type(`foo`) 
<type 'str'> 

Чем больше Pythonic способ преобразования целых чисел в строки? Я всегда использовал первый метод, но теперь я нашел второй метод более удобочитаемым. Есть ли практическая разница?Pythonic способ преобразования целых чисел в строку

ответ

10

String conversions using backticks - это сокращенная нотация для звонка repr() по значению. Для целых чисел, полученный выход str() и repr()происходит быть тем же самым, но это не ту же операцию:

>>> example = 'bar' 
>>> str(example) 
'bar' 
>>> repr(example) 
"'bar'" 
>>> `example` 
"'bar'" 

Синтаксис был removed from Python 3 обратные кавычки; Я бы не использовал его, поскольку явный вызов str() или repr() гораздо более ясен в своем намерении.

Обратите внимание, что у вас есть больше возможностей для преобразования целых чисел в строки; Вы можете использовать str.format() или old style string formatting operations интерполировать целое число в большую строку:

>>> print 'Hello world! The answer is, as always, {}'.format(42) 
Hello world! The answer is, as always, 42 

, который является гораздо более мощным, чем с помощью конкатенации.

+0

Приветствия для "сокращенного обозначения для вызова repr()" бит. Узнавайте что-то новое каждый день. – Ayrx

Смежные вопросы