At 10:06 PM 6/27/2008, Douglas Drumond wrote:

In a2() you do l1 += l2, ie, l1 = l1 + l2
But if you don't have l1 defined yet, you can't add to l2
It's like:
def a2():
        l1 = foo + l2


UnboundLocalError: local variable 'foo' referenced before assignment

It's because l1 (and foo at above example) is a local variable.
a1's l1 is different from a2's l1.

Sorry to be dense, but how, in what way, is a1's l1  different from a2's l1"?  Both are [1,2,3]*100 .

Dick


On Sat, Jun 28, 2008 at 01:39, Dick Moores <[EMAIL PROTECTED]> wrote:
I'm puzzled by the below error msg. If I change the line in a2() from

l1 = [1,2,3]*100

to

l1 = [1,2,3]

There is no problem.

Why? And why isn't that line a problem for a1()?

=========================================
def a1():
        return l1.extend(l2)
if __name__=='__main__':
        l1 = [1,2,3]*100
        l2 = [4,5,6]
        from timeit import Timer
        t = Timer("a1()", "from __main__ import a1")
        t1 = t.timeit(number=10)

       
def a2():
        l1 += l2
if __name__=='__main__':
        l1 = [1,2,3]*100
        l2 = [4,5,6]
        from timeit import Timer
        t = Timer("a2()", "from __main__ import a2")
        t2 = t.timeit(number=10)

print "t1:", t1
print "t2:", t2
print "t2/t1:", t2/t1

Error msg:
E:\PythonWork>timing_2_stupidsV2.py
Traceback (most recent call last):
  File "E:\PythonWork\timing_2_stupidsV2.py", line 21, in <module>
    t2 = t.timeit(number=10)
  File "E:\Python25\lib\timeit.py", line 161, in timeit
    timing = self.inner(it, self.timer)
  File "<timeit-src>", line 6, in inner
  File "E:\PythonWork\timing_2_stupidsV2.py", line 15, in a2
    l1 += l2
UnboundLocalError: local variable 'l1' referenced before assignment
===================================================

Thanks,

Dick Moores

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor



_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to