Eryk Sun added the comment:
You have to subclass ctypes.Array with a _type_ and _length_. But ctypes types
also implement sequence repetition (*) to facilitate creating array types. For
example:
import array, ctypes
a1 = array.array('l')
a1.fromlist(range(10))
c1 = (ctypes.c_long * 10).from_buffer(a1)
>>> c1[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> c1[0] = 42
>>> a1[0]
42
That said, it's way too easy to segfault this. Why not simply fail the call in
this case? e.g.
StgDictObject *dict = PyType_stgdict(type);
if (!dict) {
PyErr_SetString(PyExc_TypeError,
"abstract class");
return NULL;
}
----------
nosy: +eryksun
versions: +Python 3.4, Python 3.5, Python 3.6
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue25659>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com