asincero wrote: > Would it be considered good form to begin every method or function with > a bunch of asserts checking to see if the parameters are of the correct > type (in addition to seeing if they meet other kinds of precondition > constraints)? Like: > > def foo(a, b, c, d): > assert type(a) == str > assert type(b) == str > assert type(c) == int > assert type(d) == bool > # rest of function follows > > This is something I miss from working with more stricter languages like > C++, where the compiler will tell you if a parameter is the wrong type. > If anything, I think it goes a long way towards the code being more > self documenting. Or is this a waste of time and not really "the > Python way"? > > -- Arcadio
Generally asserts should be used to "enforce" invariants of your code (as opposed to typechecking), or to check certain things while debugging. FWIW, if I saw code that that you presented here I'd assume the programmer who wrote it was either very new(-bie-ish) or just very very paranoid, so I guess I could say it's not pythonic... :-) BTW, speaking of "strictness", "more stricter" is invalid English, just "stricter" is the "correct" form. ;-) Peace, ~Simon -- http://mail.python.org/mailman/listinfo/python-list