|
| 1 | +import operator |
| 2 | +from dataclasses import dataclass |
| 3 | + |
| 4 | + |
| 5 | +@dataclass |
| 6 | +class Musician: |
| 7 | + id: int |
| 8 | + fname: str |
| 9 | + lname: str |
| 10 | + group: str |
| 11 | + |
| 12 | + |
| 13 | +musician_lists = [ |
| 14 | + [1, "Brian", "Wilson", "Beach Boys"], |
| 15 | + [2, "Carl", "Wilson", "Beach Boys"], |
| 16 | + [3, "Dennis", "Wilson", "Beach Boys"], |
| 17 | + [4, "Bruce", "Johnston", "Beach Boys"], |
| 18 | + [5, "Hank", "Marvin", "Shadows"], |
| 19 | + [6, "Bruce", "Welch", "Shadows"], |
| 20 | + [7, "Brian", "Bennett", "Shadows"], |
| 21 | +] |
| 22 | + |
| 23 | +group_members = [] |
| 24 | + |
| 25 | +for musician in musician_lists: |
| 26 | + group_members.append(Musician(*musician)) |
| 27 | + |
| 28 | +# Returning a single attribute. |
| 29 | +get_fname = operator.attrgetter("fname") |
| 30 | + |
| 31 | +for person in group_members: |
| 32 | + print(get_fname(person)) |
| 33 | + |
| 34 | +# Returning multiple attributes. |
| 35 | +get_id_lname = operator.attrgetter("id", "lname") |
| 36 | + |
| 37 | +for person in group_members: |
| 38 | + print(get_id_lname(person)) |
0 commit comments