|
|
|
|
| RuntimeError: dictionary changed size during itera |
 RuntimeError: dictionary changed size during itera - feofao [ 2006-03-23 10:55 | 810 byte(s)]
 Re: RuntimeError: dictionary changed size during i - limodou [ 2006-03-23 22:15 | 220 byte(s)]
 Re: RuntimeError: dictionary changed size during i - feofao [ 2006-03-24 08:57 | 42 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
>>> globals()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__d
oc__': None}
>>> for i in globals().iteritems(): print i
...
('__builtins__', <module '__builtin__' (built-in)>)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
RuntimeError: dictionary changed size during iteration
>>> for i in globals().iteritems(): print i
...
('__builtins__', <module '__builtin__' (built-in)>)
('__name__', '__main__')
('i', ('__name__', '__main__'))
('__doc__', None)
大家帮忙解释这个错误。
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
我想可能是globals是用来存放全局对象的,它的内容随着使用会变化。而iteritems()是产生一个迭代器,运行时才会出结果。在第一次运行时,i是新产生的变量,可能对iteritems()的生成产生了影响。第二次运行时,没有新的变量,因此不报错。
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
|