no unbound methods in py3k
tjreedy at udel.edu
Thu Oct 9 21:06:17 CEST 2008
Thomas Heller wrote:
> Christian Heimes schrieb:
>> Thomas Heller wrote:
>>> but this is very ugly, imo. Is there another way?
>>> The raw_func instances that I have are not descriptors (they
>>> do not implement a __get__() method...)
>> I've written PyInstanceMethod_Type for this use case. It's not (yet)
>> available for Python code. Barry hasn't decided whether he should expose
>> the type so late in the release cycle or not. See
>> http://bugs.python.org/issue3787 and
> Ok, so one has to write an extension to access or expose it.
> Oh, wait - there's ctypes:
> Python 3.0rc1 (r30rc1:66507, Sep 18 2008, 14:47:08) [MSC v.1500 32 bit (Intel)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
>>>> from ctypes import *
>>>> pythonapi.PyInstanceMethod_New.restype = py_object
>>>> pythonapi.PyInstanceMethod_New.argtypes = [py_object]
>>>> instancemethod = pythonapi.PyInstanceMethod_New
>>>> class Example:
> ... pass
>>>> Example.id = instancemethod(id)
>>>> x = Example()
A pyCapi module that exposed via ctypes useful C functions not otherwise
accessible, with predefinition of restype and argtypes and anything else
needed, might make a nice addition to PyPI if not the stdlib. You have
done two here and I believe others have posted others.
More information about the Python-list