https://github.com/python/cpython/commit/1dcb46104f8a66d3da78ddfd6004028f6e6bbd0f
commit: 1dcb46104f8a66d3da78ddfd6004028f6e6bbd0f
branch: 3.11
author: Miss Islington (bot) <[email protected]>
committer: terryjreedy <[email protected]>
date: 2024-03-13T07:09:52-04:00
summary:

[3.11] gh-111307: Update design FAQ 'switch' entry (GH-115899) (#116704)

(cherry picked from commit 43986f55671ba2f7b08f8c5cea69aa136a093697)
Co-authored-by: Terry Jan Reedy <[email protected]>

files:
M Doc/faq/design.rst

diff --git a/Doc/faq/design.rst b/Doc/faq/design.rst
index d0c136deabad76..00b1ef69946f4a 100644
--- a/Doc/faq/design.rst
+++ b/Doc/faq/design.rst
@@ -258,9 +258,11 @@ is evaluated in all cases.
 Why isn't there a switch or case statement in Python?
 -----------------------------------------------------
 
-You can do this easily enough with a sequence of ``if... elif... elif... 
else``.
-For literal values, or constants within a namespace, you can also use a
-``match ... case`` statement.
+In general, structured switch statements execute one block of code
+when an expression has a particular value or set of values.
+Since Python 3.10 one can easily match literal values, or constants
+within a namespace, with a ``match ... case`` statement.
+An older alternative is a sequence of ``if... elif... elif... else``.
 
 For cases where you need to choose from a very large number of possibilities,
 you can create a dictionary mapping case values to functions to call.  For
@@ -289,6 +291,9 @@ It's suggested that you use a prefix for the method names, 
such as ``visit_`` in
 this example.  Without such a prefix, if values are coming from an untrusted
 source, an attacker would be able to call any method on your object.
 
+Imitating switch with fallthrough, as with C's switch-case-default,
+is possible, much harder, and less needed.
+
 
 Can't you emulate threads in the interpreter instead of relying on an 
OS-specific thread implementation?
 
--------------------------------------------------------------------------------------------------------

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to