Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2013 22:27:20

ankane
Зарегистрирован: 2012-11-16
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Поясните пример из книги Лутца

В книге приведен пример :

def gatherAttrs(self):
		attrs = []
		for key in sorted(self.__dict__):
			attrs.append('%s=%s)'%(key,getattr(self,key)))
		return ','.join(attrs)

почему в этом примере работает join для списка к строке получается присоединить список ?

Отредактировано ankane (Янв. 21, 2013 22:48:12)

Офлайн

#2 Янв. 21, 2013 22:30:15

vkopey
От:
Зарегистрирован: 2010-09-26
Сообщения: 116
Репутация: +  3  -
Профиль   Отправить e-mail  

Поясните пример из книги Лутца

Не для списка, а для строки:
',' - строка
attrs - список



Офлайн

#3 Янв. 21, 2013 22:46:36

ankane
Зарегистрирован: 2012-11-16
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Поясните пример из книги Лутца

В чем разница тогда в примере из книги, который работает, и вот этим примером, который не работает?

>>> a='231231'
>>> b=[123,'zxc',True]
>>> b
[123, 'zxc', True]
>>> a.join(b)
Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    a.join(b)
TypeError: sequence item 0: expected str instance, int found

Офлайн

#4 Янв. 21, 2013 22:53:22

vkopey
От:
Зарегистрирован: 2010-09-26
Сообщения: 116
Репутация: +  3  -
Профиль   Отправить e-mail  

Поясните пример из книги Лутца

123 - целое (int), а можно сцеплять только строки (str)



Отредактировано vkopey (Янв. 21, 2013 22:55:43)

Офлайн

#5 Янв. 21, 2013 22:54:36

mironich
От:
Зарегистрирован: 2011-05-23
Сообщения: 118
Репутация: +  2  -
Профиль   Отправить e-mail  

Поясните пример из книги Лутца

join ожидет, список только из строк, у вам аж три типа в списке, int, str, bool.



Отредактировано mironich (Янв. 21, 2013 22:54:53)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version