list(), tuple() should not place at "Built-in functions" in documentation
fancheyujian at gmail.com
Sat Jul 16 07:35:24 CEST 2011
> Perhaps you meant this?
> assert isinstance(user, User)
Yes I meant this,sorry,my mistake.
Thx for your and Ben's feedbacks first,it's appreciated.
your points is taken by me,but I want to make my opinion more clearly.
The assertion is JUST show to my function callers during development,warning that "I want a list/tuple,not some other objects"(BTW, your practice of wrapping arguments to iter is good,I'll take this to improve my code,thx again.).And assertion's off when running Python with the -O (optimize) switch is what I expect,it isn't necessary in production code.Argument validation is done by constuctor of object which I used in assertion.
I also have a few words about duck-typing.Duck-typing is good,but how about if I offer a convenient way to my function user by producing or changing what he want to pass me to a *real* duck?Is that more explicit to my user?
Anyway,I'll look at my principles which may need some changes or improvements.
More information about the Python-list