Форум сайта python.su
Вот протокол:
m00nk@m00nk-desktop:~$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from PyQt4.QtCore import *
>>> s = QStringList()
>>> s.append('aaaa')
>>> s.append('bbbb')
>>> s.append('cccc')
>>> s.append('dddd')
>>> s.append('eeee')
>>> s.append('ffff')
>>> s.append('gggg')
>>> for i in xrange(0, s.count()-1): s.takeAt(i)
...
PyQt4.QtCore.QString(u'aaaa')
PyQt4.QtCore.QString(u'cccc')
PyQt4.QtCore.QString(u'eeee')
PyQt4.QtCore.QString(u'gggg')
Ошибка сегментирования
m00nk@m00nk-desktop:~$
Отредактировано (Окт. 15, 2010 19:40:08)
Офлайн
takeAt, он удаляет строку из списка по индексу и возвращает ее. в результате индекс выходит за границу.
правильнее так:
while s:
print s.takeAt(0)
Отредактировано (Окт. 15, 2010 20:52:22)
Офлайн
не нужно менять объект, по которому вы итерируетесь.
Иногда Питон подобную шутку прощает - а часто и бьет больно.
Офлайн
takeAt, он удаляет строку из спискаСтранное название. Если бы это было pop или shift, то можно было бы догадаться, а так я себе весь мозг сломал :(
не нужно менять объект, по которому вы итерируетесь.От, блин! Кто ж мог знать, что он изменяется… :(
Отредактировано (Окт. 16, 2010 03:56:49)
Офлайн
m00nkА документацию читать вам убеждения не позволяют?
От, блин! Кто ж мог знать, что он изменяется… :(
Офлайн
Прикол в том, что я читал ту документацию, которая автоматически устанавливается на машину вместе с PyQt, а там описание многих методов сводится к простому перечислению параметров… :(
За ссылочку спасибо.
Офлайн
m00nkв таких случаях надо читать описание родительского класса
Прикол в том, что я читал ту документацию, которая автоматически устанавливается на машину вместе с PyQt, а там описание многих методов сводится к простому перечислению параметров… sad
Офлайн