def __init__(self, first, last): self._first = first self._last = last self.e = self._f + self._l +'@gmail.com'the first time self._f and self._l are used, they are being read. But they have never been defined so you get an Attributeerror
If you remove the last line from the __init__ method, it should work.