<div dir="ltr"><div><div>Hello to all,<br><br></div>I think I detected a strange behaviour with docstrings when using the pyqtProperty decorator. <br></div><div>It does get the docstring from the doc pyqtProperty parameter but not from the docstring itself:<br><br>    from PyQt5 import QtCore, QtWidgets<br><br>    class Test(QtWidgets.QWidget):<br>        @pyqtProperty(str)<br>        def data(self):<br>            """docstring"""<br>            return "result"<br><br></div><div>When defining a property like this, the __doc__ attribute is not initialized:<br><br><br>    In [11]: print(Test.data.__doc__)<br>    None<br><br></div><div>But it does work when set directly from the doc parameter:<br><br><br>    from PyQt5 import QtCore, QtWidgets<br><br></div><div>    class Test(QtWidgets.QWidget):<br>        @pyqtProperty(str, doc="docstring")<br>        def data(self):<br>            return "result"<br><br>    In [13]: print(Test.data.__doc__)<br>    docstring<br><br></div><div>I've searched through the code and found this fragment in the file "qpy/QtCore/qpycore_pyqtproperty.cpp" that looks like it should be getting the docstrings from the wrapped function docstring:<br><br>    /* If no docstring was given and the getter has one, then use it. */<br>    if ((!doc || doc == Py_None) && get)<br>    {<br>        PyObject *get_doc = PyObject_GetAttrString(get, "__doc__");<br><br>        if (get_doc)<br>        {<br>            Py_XDECREF(doc);<br>            doc = get_doc;<br>        }<br>        else<br>        {<br>            PyErr_Clear();<br>        }<br>    }<br><br><br></div><div>Thank you :)<br></div><div><br><br><br></div><div><br></div></div>