Unfortunately, I couldn't find the reference but I know I read it somewhere. Even with a selective search I wasn't able to find it. I think I read it in context of module/class test case writing.
I will keep your responses in mind therefore I will put logic in __init__ for data validation. thanks again for the responses. On Wed, Jan 15, 2014 at 8:46 PM, Chris Angelico <ros...@gmail.com> wrote: > On Thu, Jan 16, 2014 at 12:25 PM, Cameron Simpson <c...@zip.com.au> wrote: > > However, I would also have obvious validity checks in __init__ > > itself on the supplied values. Eg: > > > > def __init__(self, size, lifetime): > > if size < 1: > > raise ValueError("size must be >= 1, received: %r" % (size,)) > > if lifetime <= 0: > > raise ValueError("lifetime must be > 0, received: %r" % > (lifetime,)) > > > > Trivial, fast. Fails early. Note that the exception reports the > > receive value; very handy for simple errors like passing utterly > > the wrong thing (eg a filename when you wanted a counter, or something > > like that). > > With code like this, passing a filename as the size will raise TypeError > on Py3: > > >>> size = "test.txt" > >>> size < 1 > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > TypeError: unorderable types: str() < int() > > Yet another advantage of Py3 :) > > ChrisA > -- > https://mail.python.org/mailman/listinfo/python-list > -- --- Get your facts first, then you can distort them as you please.--
-- https://mail.python.org/mailman/listinfo/python-list