this property constructor can actually accept two additional argumentsa deletion function and docstring for the property the delete function is rarely supplied in practicebut it can be useful for logging that value has been deletedor possibly to veto deleting if we have reason to do so the docstring is just string describing what the property doesno different from the docstrings we discussed in objects in python if we do not supply this parameterthe docstring will instead be copied from the docstring for the first argumentthe getter method here is silly example that simply states whenever any of the methods are calledclass sillydef _get_silly(self)print("you are getting silly"return self _silly def _set_silly(selfvalue)print("you are making silly {}format(value)self _silly value def _del_silly(self)print("whoahyou killed silly!"del self _silly silly property(_get_silly_set_silly_del_silly"this is silly property"if we actually use this classit does indeed print out the correct strings when we ask it tos silly( silly "funnyyou are making silly funny silly you are getting silly 'funnydel silly whoahyou killed sillyfurtherif we look at the help file for the silly class (by issuing help(sillyat the interpreter prompt)it shows us the custom docstring for our silly attributehelp on class silly in module __main__class silly(builtins object