$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Anton Gluck (gluc_at_[hidden])
Date: 2000-11-22 00:59:59
Dave,
<snip>
> length in python, though I don't think you need that in your case. In any
> case, to support the sequence interface, model your vector interface after
> the dangerous_array example, i.e. expose __getitem__, __setitem__ (if you
> want it to be writable) and expecially remember to throw the
> PyExc_IndexError when the index is out-of-range. This will allow you to
> write "for x in S".
Thanks for your discussion of my problem. I talked this over with one of
the programmers who works on the dll I am wrapping, because I had the
problem that in some cases the iterator was the only accessible handle for
Python. We came up with this scheme, which I was able to implement:
Create a new class that uses the iterator from the dll to create its own
vector. Add length(), getItem() etc. to this class. Expose the class -
voila!
It's not as elegant as your solution (I can't do the "for x in S" Python
construct, rather I need to do "for i in range(0, PyVarList.Length()" to
use my VarList example), but it does work.
Thanks for your help, it brought enough clarity to the problem with
iterators to prompt our solution.
Toni