On 2006-08-29, Jonathan Gardner <[EMAIL PROTECTED]> wrote: > > Simon Forman wrote: >> >> If you have a reason to restrict your code to using only ints (perhaps >> you're packing them into an array of some sort, or passing them to a C >> extension module) then yes, of course it's appropriate. > > I politely disagree. Rather than an interface that demands an actual > int, demand something that can be typecast as an int. > > For instance: > > def needsInt(i): > i = int(i) > ... pass i to an internal c function that requires an int ... > # Or better yet, write your internal c function to take any Python > object and cast it into an int. > > If you absolutely need a particular type of thing, then cast it into > that thing.
The logical conclusion of this decision would be that one should write sequence classes as follows: class Seq(object): ... def __getitem__(self, index): index = int(index) ... def __setitem__(self, index, value): index = int(index) ... I don't know about you but I personally think this is overkill. I would also prefer seq[2.5] to raise an exception instead of returning seq[2] -- Antoon Pardon -- http://mail.python.org/mailman/listinfo/python-list