mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
gh-99908: Tutorial: Modernize the 'data-record class' example (GH-100499)
(cherry picked from commit 00afa5066b
)
Co-authored-by: JosephSBoyle <48555120+JosephSBoyle@users.noreply.github.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
parent
ba87dae453
commit
a7eee898ab
1 changed files with 15 additions and 9 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue