[Aahz]
> -1
>
> This is seriously no different from an attempt to do
>
> >>> a = {}
> >>> a[ [] ] = 1

how so? i'm not trying to modify/store anything in a dict.
i'm only testing if a certain object is contained in the dict.
that's totally different.
imagine this:
>>> x = 6
>>> x < 2
am i trying to modify 'x' in any way? i'm only testing if x is
less than 2.

i fail to see your point

[David Hopwood]
> However, if it isn't hashable, asking whether it is in a dict is very
> likely to be a programming error.

not really. my program holds a blacklist of "bad objects", which
shouldn't be granted access to. instead of a list, i'm using a set
(performance, whatever). the "bad objects" are all hashable,
and i want to see if an arbitrary object is "good" or "bad", by looking
it up in the blacklist. the arbitrary object can be hashable or not,
that's not the question.

just like `"hello" != 2` returns True, instead of raising IncompatibleTypes,
i want `x in y` to return False when `x` is not contained in `y`
(with no regard to whether or not it's possible for `y` to contain `x`).

the logic is simple: every `x` is either contained in `y` or not.
if `x` *cannot* be contained in `y`, then the answer is a "strong no",
but that's still a "no".



-tomer
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to