[Tutor] object attribute validation
Dave Angel
davea at davea.name
Sat Feb 23 03:35:13 CET 2013
On 02/22/2013 09:26 PM, Robert Sjoblom wrote:
>> 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. [snip] Following is my
>> example code:
>
>> class Person(object):
>> def __init__(self,name,age):
>> self.name = name
>> self.age = age
>
You forgot to include the rest of the class as the OP defined it.
Therefore your conclusion is entirely wrong.
> You need a try/except, or some other form of validation here, otherwise:
>
>>>> b = Person("Johnny", "Six")
>>>> b.get_age()
> 'Six'
>
>> Is this a good approach? Any suggestions for improving the code or
>> alternative approaches would be helpful.
>
> I can't help you with that question, since I'm still (!) wrapping my
> head around objects and haven't really gotten around to looking at
> data validation and when/how you should do it. I would probably use
> try/except for the __init__ and the setter.
>
You only need it for the setter, and it's there. The setter is called
by the initializer, through the call to property. Look up that mechanism.
--
DaveA
More information about the Tutor
mailing list