From: Todd M. <jm...@st...> - 2003-05-07 12:34:54
|
On Wed, 2003-05-07 at 05:16, Peter Verveer wrote: > > > I am not sure if this is a bug, or intended behaviour, but the possibilty > > > to compare an array type object to 'Any' would be very useful for me. > > > > 'Any' grew up from the C-API, rather than down from the Python design, > > so it's not very well thought out. Right now, it is a placeholder used > > to mark arrays with undefined types and to indicate "no type constraint" > > in C API calls. In normal contexts, you can't make an array of type > > 'Any'. I think there are two reasonable behaviors for comparisons with > > 'Any', both used in C. The first behavior is literal comparison; here > > comparison to Any would generally return "not equal". The second > > behavior is wild-card matching; here, comparison to Any would generally > > return "equal". Which makes sense to you? How do you want to use > > this? > > I use 'Any' right now in C functions to indicate 'no type constraint'. You > could use both literal comparison and wild-card matching behaviour for that, > if you want to do this in Python, I think. But maybe one should not do such a > thing in Python by comparison to 'Any' at all. > > Literal comparison is what I generally expect from Python objects, so anything > else may just be confusing (at least to me). However, the name 'Any' does > suggest the wild-card matching behaviour. > > Is there specific reason why you exposed 'Any' in python? Initially it was not exposed. As the API type functions evolved, it made Any less of a special case to expose it. > Maybe it would be > better not to expose such a type object since it seems to be a 'special > case'. I am starting to think that my use for it at the Python level is not > appropiate. > For instance, I could easily use 'None' instead, and I think I > will do that in the future. Yes. That's probably what I should have done in C as well: tNone rather than tAny. > > You mentioned that 'Any' is really a C-API thing. Unless somebody has a good > use for it I would now actually say that it maybe should not be exposed at > the Python API level at all... I agree with this. It might be as simple as renaming it to _Any in Python, but I still hesitate to change this until I have a little more time to think about it. Too often, things go from "bad" to "not so good"... Thanks for the input, Todd |