Not really. The Pythonic ways to express this might be one of the following.
A regular old class
class StudentName:
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
student2 = StudentName(first_name="Craig", last_name="Playstead")
(You can also add a , *,
argument after self
to force users to spell out the keyword names see Keyword (Named) Arguments in Python.)
A namedtuple
import collections
StudentName = collections.namedtuple("StudentName", "first_name last_name")
student2 = StudentName(first_name="Craig", last_name="Playstead")
Namedtuples also act like tuples, so you can use student2[0]
to access first_name
and [1]
for last_name
.
A dataclass
(Python 3.7+)
import dataclasses
@dataclasses.dataclass
class StudentName:
first_name: str
last_name: str
student2 = StudentName(first_name="Craig", last_name="Playstead")