Skip to content

Commit

Permalink
pythongh-99908 Update class documentation to use a modernized example
Browse files Browse the repository at this point in the history
  • Loading branch information
Joe Boyle authored and JosephSBoyle committed Dec 22, 2022
1 parent 09edde9 commit 299ecee
Showing 1 changed file with 16 additions and 12 deletions.
28 changes: 16 additions & 12 deletions Doc/tutorial/classes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -738,18 +738,22 @@ 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::

class Employee:
pass

john = Employee() # Create an empty employee record

# Fill the fields of the record
john.name = 'John Doe'
john.dept = 'computer lab'
john.salary = 1000
"struct", bundling together a few named data items. The idiomatic approach
is to use :mod:`dataclasses` for this purpose::

from dataclasses import dataclasses

@dataclass
class Employee:
name: str
dept: str
salary: int

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
Expand Down

0 comments on commit 299ecee

Please sign in to comment.