[Python-3000] interaction between locals, builtins and except clause

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

AltStyle によって変換されたページ (->オリジナル) /