[Python-3000] interaction between locals, builtins and except clause (original) (raw)

Lisandro Dalcin dalcinl at gmail.com
Thu Jul 26 19:06:47 CEST 2007


Porting to Py3K, I modified a function like the followin, using a trick for it working in Py2.x .

def __iter__(self):
    if self == _mpi.INFO_NULL:
        return
    try:    range = xrange
    except: pass
    nkeys = _mpi.info_get_nkeys(self)
    for nthkey in range(nkeys):
        yield _mpi.info_get_nthkey(self, nthkey)

However, I've got in my unittests (running with py3k)

ERROR: testPyMethods (main.TestInfo)

Traceback (most recent call last): File "tests/unittest/test_info.py", line 123, in testPyMethods for key in INFO: File "/u/dalcinl/lib/python/mpi4py/MPI.py", line 937, in iter for nthkey in range(nkeys): UnboundLocalError: local variable 'range' referenced before assignment

I am not completelly sure if this is expected (it is, regarding implementation, but perhaps not regarding Python as a language), so I post this for your consideration.

-- Lisandro Dalcín

Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC) Instituto de Desarrollo Tecnológico para la Industria Química (INTEC) Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET) PTLC - Güemes 3450, (3000) Santa Fe, Argentina Tel/Fax: +54-(0)342-451.1594



More information about the Python-3000 mailing list