Variable name has a typo, but code still works. Why?

Max Erickson maxerickson at
Wed May 31 17:05:38 CEST 2006

"mateus" <mateus.justino at> wrote:

> print "hello world"
> I have a nested loop where the outer loop iterates over key value
> pairs of a dictionary and the inner loop iterates over a list
> each list of which is a mapped value from the dictionary
>     def showReport(self):
>         for dev, sessions in self.logger.items():
>             for tree in session:
>                 self.addTestItem(self, tree)
> What I don't understand is why this executes w/o any problems
> when "sessions" was spelled as plural (sessionS) while later
> being spelled in the singular (session).
> Is there some type of name resolution of local variables where
> Python makes assumptions?

Is self.logger.items() empty?

This does not raise a NameError even when 'explode' is not defined:

for x in []:


More information about the Python-list mailing list