Peter Otten wrote: > Pete Bartonly wrote: > >> Quick question, probably quite a simple matter. Take the follow start of >> a method: >> >> >> def review(filesNeedingReview): >> >> for item in filesNeedingReview: >> (tightestOwner, logMsg) = item >> >> if (logMsg != None): >> for logInfo in logMsg.changed_paths: >> >> >> This generates the error: >> >> UnboundLocalError: local variable 'logMsg' referenced before assignment >> >> I thought I'd assigned it in the "(tightestOwner, logMsg) = item" line - >> so in the python interpreter complaining about the fact this assignment >> might not go well? > > My crystal ball tells me that you are not posting the actual code where > for... and if... are indented to the same level.
I am! See my other reply just now. Here it the code again, directly cut and pasted from emacs: for item in filesNeedingReview: (tightestOwner, logMsg) = item if (logMsg != None): for logInfo in logMsg.changed_paths: if (not tightestOwner in emailListForReviewers): emailListForReviewers.append(tightestOwner) This triggers the error > when review() is called with an empty sequence. > > Please remember to copy and paste both code and traceback next time. Sorry 'bout that. The traceback I forgot is: Traceback (most recent call last): File "checkCode.py", line 599, in ? analyseFiles(tempDir) File "checkCode.py", line 445, in analyseFiles analyseFilesInARepos(startDir, f) File "checkCode.py", line 587, in analyseFilesInARepos makeReport(projName, filesNeedingReview, filesFailedReview) File "checkCode.py", line 419, in makeReport for logInfo in logMsg.changed_paths: UnboundLocalError: local variable 'logMsg' referenced before assignment Pete -- http://mail.python.org/mailman/listinfo/python-list