Steve Holden  <st...@holdenweb.com> wrote:

What's the exact reason for requiring that a creator argument be of a
specific type? So operations on the instances don't go wrong? Well, why
not just admit that we don't have control over everything, and just *let
things go wrong* when the wrong type is passed?

Because some interfaces are "public", meaning visible within their own little arena of modules, and some interfaces are "published", meaning visible to other packages. Encapsulation is hierarchical - this is just a "small things go inside big things" situation. The higher an interface's level, the more "published" it is.

Published interfaces should fail as early and clearly as possible if they are going to fail. The obvious example here is an interface that fails and prints a message telling a newbie how to call the package the right way. But that newbie could be you!

(And don't forget the wall-to-wall unit tests, too;)

--
  Phlip
  http://c2.com/cgi/wiki?MoreliaViridis
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to