Extended functions in embedded code

Chris Angelico rosuav at gmail.com
Tue Oct 13 11:48:57 EDT 2015


On Wed, Oct 14, 2015 at 2:29 AM, Ervin Hegedüs <airween at gmail.com> wrote:
>>
>> Sounds to me like the easiest way would be to inject into the
>> builtins. You should be able to import the builtins module from your C
>> code, and then stuff some extra attributes into it; they'll be
>> automatically available to the script, same as the "normal" built-in
>> names like int, super, and ValueError.
>
> well, sounds good - this solution would be right for me. Could
> you show me a good example and/or documentation about this? I've
> looked up, but "python extend built-in module" is may be too
> simple expression :).

It'd look broadly like this:

/* initialize the interpreter, yada yada */
PyObject *builtins = PyImport_ImportModule("builtins");
PyModule_AddFunctions(builtins, mymodule_methods);

instead of the current module initialization. You import the name
'builtins', stuff some extra stuff into it, and then go on your merry
way. It should be reasonably easy.

ChrisA



More information about the Python-list mailing list