summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2020-01-21 01:04:36 (GMT)
committerGitHub <noreply@github.com>2020-01-21 01:04:36 (GMT)
commitd7b0118a124f11f702bbe6e9f1bad680fb53590b (patch)
treeb09d046d962fc4deaa7e9be8a0c51ffcbad0c567
parent3da839046359644f286195f5126035e162440af1 (diff)
downloadcpython-d7b0118a124f11f702bbe6e9f1bad680fb53590b.zip
cpython-d7b0118a124f11f702bbe6e9f1bad680fb53590b.tar.gz
cpython-d7b0118a124f11f702bbe6e9f1bad680fb53590b.tar.bz2
improve the documentation of the LOAD_METHOD and CALL_METHOD (GH-18079)
(cherry picked from commit 8698b34b68065b80bd9bd18b8decb425208fa386) Co-authored-by: Carl Friedrich Bolz-Tereick <cfbolz@gmx.de>
-rw-r--r--Doc/library/dis.rst18
1 files changed, 10 insertions, 8 deletions
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index 5e6f002..5c29c61 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -1120,22 +1120,24 @@ All of the following opcodes use their arguments.
.. opcode:: LOAD_METHOD (namei)
- Loads a method named ``co_names[namei]`` from TOS object. TOS is popped and
- method and TOS are pushed when interpreter can call unbound method directly.
- TOS will be used as the first argument (``self``) by :opcode:`CALL_METHOD`.
- Otherwise, ``NULL`` and method is pushed (method is bound method or
- something else).
+ Loads a method named ``co_names[namei]`` from the TOS object. TOS is popped.
+ This bytecode distinguishes two cases: if TOS has a method with the correct
+ name, the bytecode pushes the unbound method and TOS. TOS will be used as
+ the first argument (``self``) by :opcode:`CALL_METHOD` when calling the
+ unbound method. Otherwise, ``NULL`` and the object return by the attribute
+ lookup are pushed.
.. versionadded:: 3.7
.. opcode:: CALL_METHOD (argc)
- Calls a method. *argc* is number of positional arguments.
+ Calls a method. *argc* is the number of positional arguments.
Keyword arguments are not supported. This opcode is designed to be used
with :opcode:`LOAD_METHOD`. Positional arguments are on top of the stack.
- Below them, two items described in :opcode:`LOAD_METHOD` on the stack.
- All of them are popped and return value is pushed.
+ Below them, the two items described in :opcode:`LOAD_METHOD` are on the
+ stack (either ``self`` and an unbound method object or ``NULL`` and an
+ arbitrary callable). All of them are popped and the return value is pushed.
.. versionadded:: 3.7