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 <rep...@bugs.python.org>
<http://bugs.python.org/issue25659>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to