From 17f94e28882e1e2b331ace93f42e8615383dee59 Mon Sep 17 00:00:00 2001 From: andrei kulakov Date: Mon, 5 Jul 2021 12:23:42 -0400 Subject: [PATCH] bpo-43453: Update and re-add example to typing runtime_checkable (#27013) Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> --- Doc/library/typing.rst | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index e9980a7745d694..b1d67e46fbb5d8 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -1232,8 +1232,13 @@ These are not used in annotations. They are building blocks for creating generic .. note:: - :func:`runtime_checkable` will check only the presence of the required methods, - not their type signatures. + :func:`runtime_checkable` will check only the presence of the required + methods, not their type signatures. For example, :class:`ssl.SSLObject` + is a class, therefore it passes an :func:`issubclass` + check against :data:`Callable`. However, the + :meth:`ssl.SSLObject.__init__` method exists only to raise a + :exc:`TypeError` with a more informative message, therefore making + it impossible to call (instantiate) :class:`ssl.SSLObject`. .. versionadded:: 3.8