mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
SF patch #493452: docstrings for staticmethod/classmethod (Skip
Montanaro) (With minor adjustments.)
This commit is contained in:
parent
dd5c05fe6d
commit
33c1a8893d
1 changed files with 41 additions and 2 deletions
|
@ -491,6 +491,27 @@ cm_init(PyObject *self, PyObject *args, PyObject *kwds)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static char classmethod_doc[] =
|
||||
"classmethod(function) -> method\n\
|
||||
\n\
|
||||
Convert a function to be a class method.\n\
|
||||
\n\
|
||||
A class method receives the class as implicit first argument,\n\
|
||||
just like an instance method receives the instance.\n\
|
||||
To declare a class method, use this idiom:\n\
|
||||
\n\
|
||||
class C:\n\
|
||||
def f(cls, arg1, arg2, ...): ...\n\
|
||||
f = classmethod(f)\n\
|
||||
\n\
|
||||
It can be called either on the class (e.g. C.f()) or on an instance\n\
|
||||
(e.g. C().f()). The instance is ignored except for its class.\n\
|
||||
If a class method is called for a derived class, the derived class\n\
|
||||
object is passed as the implied first argument.\n\
|
||||
|
||||
Class methods are different than C++ or Java static methods.\n\
|
||||
If you want those, see the staticmethod builtin.";
|
||||
|
||||
PyTypeObject PyClassMethod_Type = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0,
|
||||
|
@ -513,7 +534,7 @@ PyTypeObject PyClassMethod_Type = {
|
|||
0, /* tp_setattro */
|
||||
0, /* tp_as_buffer */
|
||||
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
|
||||
0, /* tp_doc */
|
||||
classmethod_doc, /* tp_doc */
|
||||
0, /* tp_traverse */
|
||||
0, /* tp_clear */
|
||||
0, /* tp_richcompare */
|
||||
|
@ -602,6 +623,24 @@ sm_init(PyObject *self, PyObject *args, PyObject *kwds)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static char staticmethod_doc[] =
|
||||
"staticmethod(function) -> method\n\
|
||||
\n\
|
||||
Convert a function to be a static method.\n\
|
||||
\n\
|
||||
A static method does not receive an implicit first argument.\n\
|
||||
To declare a static method, use this idiom:\n\
|
||||
\n\
|
||||
class C:\n\
|
||||
def f(arg1, arg2, ...): ...\n\
|
||||
f = staticmethod(f)\n\
|
||||
\n\
|
||||
It can be called either on the class (e.g. C.f()) or on an instance\n\
|
||||
(e.g. C().f()). The instance is ignored except for its class.\n\
|
||||
\n\
|
||||
Static methods in Python are similar to those found in Java or C++.\n\
|
||||
For a more advanced concept, see the classmethod builtin.";
|
||||
|
||||
PyTypeObject PyStaticMethod_Type = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0,
|
||||
|
@ -624,7 +663,7 @@ PyTypeObject PyStaticMethod_Type = {
|
|||
0, /* tp_setattro */
|
||||
0, /* tp_as_buffer */
|
||||
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
|
||||
0, /* tp_doc */
|
||||
staticmethod_doc, /* tp_doc */
|
||||
0, /* tp_traverse */
|
||||
0, /* tp_clear */
|
||||
0, /* tp_richcompare */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue