On the C API, it tells how to make modules, functions, variables, and other things, but what about classes? Like for example if you wanted to make a class with all of the methods having to use direct C Code which would then be converted to PyObject *'s for returning the information the C Code would normally return. Not only that but also being able to create class instance variables using the C API as well. Like for example here is an example class (As it would be if it was written in python): class Example: def __init__(self): self.data = None # None being a place holder for now. def somefunction(self): # C Code here. self.data = ret # return value for the C Code. return self.data Yes, there are better ways than writing the return data to the instance variable and returning it. That is just an example, I have classes that uses them for other things that does not return anything making the instance variables be the only way to get the data. But yeah long story short I think creating classes with the C API should be documented if not already, or at least an example of doing one to be added as an guide for others wondering how to use the C API to make their own (non exception) classes.
Hmm seems that when looking at the exports in python36.dll that the following functions seem to not be documented as far as I seen: PyClassMethodDescr_Type PyClassMethod_New PyClassMethod_Type There might be more functions dealing with classes that are not documented. However looking through the whole exports would take to long as there are so many.
Still it does look the functions lited in the second comment are undocumented. https://docs.python.org/3/search.html?q=PyClassMethodDescr_Typehttps://docs.python.org/3/search.html?q=PyClassMethod_New&check_keywords=yes&area=default However on the last function I did find 1 thing However it was not what I was looking for. What I actually was looking for was the args for the 3 functions and description on what it does and all that similar to how this function is documented: ``` PyObject* PyObject_CallObject(PyObject *callable_object, PyObject *args) Return value: New reference. Call a callable Python object callable_object, with arguments given by the tuple args. If no arguments are needed, then args may be NULL. Returns the result of the call on success, or NULL on failure. This is the equivalent of the Python expression callable_object(*args). ``` This is actually the reason why the issue was opened as the functions was not documented like this.
The title of this issue is "Document how to make classes in the C API." This already is documented. For documenting the PyClassMethod* names open a new issue.
History
Date
User
Action
Args
2022-04-11 14:58:46
admin
set
github: 74575
2017-05-17 20:05:35
serhiy.storchaka
set
status: open -> closedmessages: +
2017-05-17 19:17:41
Decorater
set
status: closed -> open
2017-05-17 19:15:28
Decorater
set
messages: +
2017-05-17 18:07:58
serhiy.storchaka
set
status: open -> closednosy: + serhiy.storchakamessages: + resolution: not a bugstage: resolved