1 | ||
Editor: pycz
Time: 2007/02/13 23:14:29 GMT+0 |
||
Note: pridano "Dictionary changed size during iteration" |
changed: - RuntimeError ============ Bad magic number ---------------- Chyba vznikne, když se pokoušíte spouštět soubory `*.pyc`, což jsou zkompilované `*.py`, pod jinou verzí Pythona, než byly vytvořeny. Tedy například `*.pyc` z Python 2.3 na Python 2.5. Dictionary changed size during iteration ---------------------------------------- K chybě dojde, pokud v průběhu iterace přes dict (nebo list) se pokusíme tento změnit. Například:: a = {1: 'jara', 2: 'cimrman', 5: 'lezici', 100: 'spici'} for i in a: if i % 2: del a[i] vyvolá vyjímku. Řešením je iterovat přes kopii slovníku (a s originálem si pak můžeme dělat co je libo): *for i in a.copy():*.
Chyba vznikne, když se pokoušíte spouštět soubory *.pyc, což jsou zkompilované *.py, pod jinou verzí Pythona, než byly vytvořeny. Tedy například *.pyc z Python 2.3 na Python 2.5.
K chybě dojde, pokud v průběhu iterace přes dict (nebo list) se pokusíme tento změnit. Například:
a = {1: 'jara', 2: 'cimrman', 5: 'lezici', 100: 'spici'} for i in a: if i % 2: del a[i]
vyvolá vyjímku. Řešením je iterovat přes kopii slovníku (a s originálem si pak můžeme dělat co je libo): for i in a.copy():.