[Python-checkins] gh-99908: Tutorial: Modernize the 'data-record class' example (GH-100499)

miss-islington webhook-mailer at python.org
Sat Dec 24 10:32:34 EST 2022


https://github.com/python/cpython/commit/3ea6f7fee883faf5f4cf8abfff62deb986b89d53
commit: 3ea6f7fee883faf5f4cf8abfff62deb986b89d53
branch: 3.10
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2022-12-24T07:32:29-08:00
summary:

gh-99908: Tutorial: Modernize the 'data-record class' example (GH-100499)

(cherry picked from commit 00afa5066bd45348ed82a38d3442763b2ed1a068)

Co-authored-by: JosephSBoyle <48555120+JosephSBoyle at users.noreply.github.com>
Co-authored-by: Alex Waygood <Alex.Waygood at Gmail.com>

files:
M Doc/tutorial/classes.rst

diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst
index d7a24b4893fb..5abb767cb0a8 100644
--- a/Doc/tutorial/classes.rst
+++ b/Doc/tutorial/classes.rst
@@ -737,18 +737,24 @@ Odds and Ends
 =============
 
 Sometimes it is useful to have a data type similar to the Pascal "record" or C
-"struct", bundling together a few named data items.  An empty class definition
-will do nicely::
+"struct", bundling together a few named data items. The idiomatic approach
+is to use :mod:`dataclasses` for this purpose::
 
-   class Employee:
-       pass
+    from dataclasses import dataclasses
 
-   john = Employee()  # Create an empty employee record
+    @dataclass
+    class Employee:
+        name: str
+        dept: str
+        salary: int
 
-   # Fill the fields of the record
-   john.name = 'John Doe'
-   john.dept = 'computer lab'
-   john.salary = 1000
+::
+
+    >>> john = Employee('john', 'computer lab', 1000)
+    >>> john.dept
+    'computer lab'
+    >>> john.salary
+    1000
 
 A piece of Python code that expects a particular abstract data type can often be
 passed a class that emulates the methods of that data type instead.  For



More information about the Python-checkins mailing list