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")