[Python-ideas] Allow isinstance second argument to be a set of types

Alexander Belopolsky alexander.belopolsky at gmail.com
Wed Jul 6 20:09:48 CEST 2011


On Mon, Jul 4, 2011 at 5:50 PM, Michael Foord <fuzzyman at gmail.com> wrote:
..
>> I'm ambivalent, as long as the implementation is careful to make sure
>> one can still use isinstance on classes like these:
>>>>    class WeirdMetaclass(type):
>>        def __iter__(self):
>>            yield 1
>>>>    class MyObject(metaclass=WeirdMetaclass):
>>        pass
>>>> It still feels a little dirty though, to have to pick between options
>> that are not mutually exclusive.
>> That's a more reasonable objection for not accepting arbitrary iterables

I don't see a problem here. If classinfo is a type, isinstance should
not attempt to iterate over it. If one really wants to check for
membership in the list that MyObject yields, it is always possible to
do it explicitly: isinstance(x, list(MyObject)).


More information about the Python-ideas mailing list

AltStyle によって変換されたページ (->オリジナル) /