Skip to content

Commit

Permalink
bpo-34085: Improve wording on classmethod/staticmethod (python#8228)
Browse files Browse the repository at this point in the history
* bpo-34085: Improve wording on classmethod/staticmethod

* Address comments from Éric

* Address comments from Éric
  • Loading branch information
andresdelfino authored and csabella committed Mar 25, 2019
1 parent 360e1e4 commit 548cb60
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions Doc/library/functions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -211,19 +211,18 @@ are always available. They are listed here in alphabetical order.
@classmethod
def f(cls, arg1, arg2, ...): ...

The ``@classmethod`` form is a function :term:`decorator` -- see the description
of function definitions in :ref:`function` for details.
The ``@classmethod`` form is a function :term:`decorator` -- see
:ref:`function` for details.

It can be called either on the class (such as ``C.f()``) or on an instance (such
A class method can be called either on the class (such as ``C.f()``) or on an instance (such
as ``C().f()``). The instance is ignored except for its class. If a class
method is called for a derived class, the derived class object is passed as the
implied first argument.

Class methods are different than C++ or Java static methods. If you want those,
see :func:`staticmethod` in this section.
see :func:`staticmethod`.

For more information on class methods, consult the documentation on the standard
type hierarchy in :ref:`types`.
For more information on class methods, see :ref:`types`.


.. function:: compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
Expand Down Expand Up @@ -1452,11 +1451,11 @@ are always available. They are listed here in alphabetical order.
@staticmethod
def f(arg1, arg2, ...): ...

The ``@staticmethod`` form is a function :term:`decorator` -- see the
description of function definitions in :ref:`function` for details.
The ``@staticmethod`` form is a function :term:`decorator` -- see
:ref:`function` for details.

It can be called either on the class (such as ``C.f()``) or on an instance (such
as ``C().f()``). The instance is ignored except for its class.
A static method can be called either on the class (such as ``C.f()``) or on an instance (such
as ``C().f()``).

Static methods in Python are similar to those found in Java or C++. Also see
:func:`classmethod` for a variant that is useful for creating alternate class
Expand All @@ -1471,8 +1470,7 @@ are always available. They are listed here in alphabetical order.
class C:
builtin_open = staticmethod(open)

For more information on static methods, consult the documentation on the
standard type hierarchy in :ref:`types`.
For more information on static methods, see :ref:`types`.


.. index::
Expand Down

0 comments on commit 548cb60

Please sign in to comment.