私はこのコードで奇妙な動作を見ています:
images = dict(cover=[],second_row=[],additional_rows=[])
for pic in pictures:
if len(images['cover']) == 0:
images['cover'] = pic.path_thumb_l
Elif len(images['second_row']) < 3:
images['second_row'].append(pic.path_thumb_m)
else:
images['additional_rows'].append(pic.path_thumb_s)
私のweb2pyアプリは私にこのエラーを与えます:
if len(images['cover']) == 0: TypeError: object of type 'NoneType' has no len()
これで何が悪いのかわかりません。おそらくスコープの問題ですか?
images['cover']
に何か新しいものを割り当てます:
images['cover'] = pic.path_thumb_l
ここで、pic.path_thumb_l
は、コードのある時点でのNone
です。
おそらく、代わりに追加するつもりでした:
images['cover'].append(pic.path_thumb_l)
あなたの問題は
if len(images['cover']) == 0:
images ['cover']の値の長さをチェックします。それは、値があるかどうかをチェックすることです。
代わりにこれを行います:
if not images['cover']:
初めて割り当てる場合、_images['cover'] = pic.path_thumb_l
_は、最初に_images['cover']
_に格納された空のリストの値を、None
である_pic.path_thumb_l
_の値に置き換えます。
この行のコードはimages['cover'].append(pic.path_thumb_l)
である必要があります