code: def public_key(self):
          
          if self._public_key is None:
              self._public_key = PublicKey.from_point(
                  bitcoin_curve.public_key(self.key))
          return self._public_key
docs: Returns the public key associated with this private key.
  
          Returns:
              PublicKey:
                  The PublicKey object that corresponds to this
                  private key.