<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fingerprint(self):
 """A memoized sha1 hexdigest hashing the contents of this PayloadField The fingerprint returns either a string or None. If the return is None, consumers of the fingerprint may choose to elide this PayloadField from their combined hash computation. :API: public """

    if self._fingerprint_memo is None:
      self._fingerprint_memo = self._compute_fingerprint()
    return self._fingerprint_memo