I have a property setter which generates a unique id by taking two strings and hashing it:
@id.setter
def id(self,value1,value2):
self._id = sha512(value
The setter can only take one value, so use a tuple: (value1, value2).
@id.setter
def id(self,value):
self._id = sha512(str(value))
...
self.id = (value1, value2)
(You didn't post what sha512 is. I'm assuming you are using hashlib.sha512, and sha512 is calling the update method, which requires a string as input.)