Edit detail for RuntimeError revision 1 of 1

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():*.

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():.