<div><br></div><div>I would like to validate data attributes before the object is instantiated or any changes thereafter. For example, following is a simple Person class with name and age attributes. I would like to validate whether age is an integer before it is added/changed in the object's dictionary. I have taken a simple integer validation example, but it could be something like DateField validation or X509 certificate validation as well. Following is my example code:</div>
<br><div><br></div><div><div>class Person(object):</div><div>  def __init__(self,name,age):</div><div>    <a href="http://self.name">self.name</a> = name</div><div>    self.age = age</div><div><br></div><div>  def get_age(self):</div>
<div>    return self._age</div><div>  </div><div>  def set_age(self,val):</div><div>    try:</div><div>      int(val)</div><div>      self._age = val </div><div>    except ValueError:</div><div>        raise Exception('Invalid value for age')</div>
<div>    </div><div>  def del_age(self):</div><div>    del self._age</div><div><br></div><div>  age = property(get_age,set_age,del_age)</div><div><br></div><div>a = Person('John',6)</div><div>b = Person('Johny','Six')</div>
<div><br></div></div><div><br></div><div>Is this a good approach? Any suggestions for improving the code or alternative approaches would be helpful. </div><div><br></div><div><br></div><div>-- thanks,</div><div>   neubyr</div>
<div><br></div>