"Length: %d" % len(self.listOfThings)
должно отлично работать.
Смысл форматирования строки состоит в том, чтобы превратить ваши данные в строку, поэтому вызов str
- это не то, что вам нужно: предоставьте сами данные, в данном случае int
. int
может быть отформатирован многими способами, наиболее распространенным является %d
, который обеспечивает его десятичное представление (способ, которым мы привыкли смотреть на числа). Для произвольных вещей вы можете использовать %s
, который вызывает str
для представляемого объекта; звонить str
себе никогда не нужно.
Я бы также рассмотрел "Length: %d" % (len(self.listOfThings),)
- некоторые люди обычно используют кортежи в качестве аргумента str.__mod__
, потому что способ работы довольно забавный, и они хотят предоставить что-то более последовательное.
Если бы я использовал, в частности, print
, я мог бы просто использовать print "Length:", len(self.listOfThings)
. Хотя на самом деле я редко использую print
.