What I mean by 'when a class is called' is when a class is being instanced, or created.
On Apr 27, 11:49 pm, Viktoras <[email protected]> wrote: > > I have a class being created and I'm testing the arguments when the > > class is called. Within the class can I error out if the types are > > wrong and prevent the class from returning? How do you guys handle > > this? > > what do you mean by "class is called" ? __init__() ? __call__() ? custom > methods? > > like already said, exceptions are the right way to handle execution flow > when errors occur. > > usually if you need to do some error checking for argument, you got to > make sure there's only one > way for data to enter, e.g. this is two ways for data to enter, you'd > have to check at two places: > > class Person: > def __init__(self,name): > # name comes unchecked here > self.name = name > > def setName(self,name) > if name is None: > raise BadNameException,'name cannot be empty' > if len(name)<2: > raise BadNameException,'name is too short' > self.name = name > > to fix that, you'd need to go with a lightweight constructor (with no > arguments), or use setName() in costructor to > initialize data. > > notice there's no problem with inheriting classes: > > class PersonInDatabase(Person) > def __init__(self,id): > # constructor will fail if setting invalid name from database > self.setName(Database.loadPersonName(id)) > > --http://groups.google.com/group/python_inside_maya -- http://groups.google.com/group/python_inside_maya
