[Twisted-Python] what is a non-class class?
Glyph
glyph at twistedmatrix.com
Wed Sep 3 01:29:59 MDT 2014
On Sep 2, 2014, at 11:45 PM, Wolfgang Rohdewald <wolfgang.kde at rohdewald.de> wrote:
> I still do not like "non-class class" because this is a contradiction
> in itself.
How about "non-class found in class slot when deserializing method object"?
> Anyway a non-class class is a class whose objects may not get a
> method attached. So far so good, but that was obvious.
Uh... no? A non-class in an object which is not a class. The error is when that object is provided as the class associated with a method.
> Am Dienstag, 2. September 2014, 16:29:41 schrieb Glyph Lefkowitz:
>> Except I think it might be broken in the face of new-style classes;
>> ClassType is the old-style class type, 'type' is the new one, so,
>> that should probably be fixed
>
> That is my problem. How do I know if the object is of a non-class class?
isinstance(something, (types.ClassType, type)).
> As you say, current code does not handle new style classes.
Yes, but it could be easily modified to do so.
> I cannot check if the object is of type "type" because
> int is also of type "type". An int certainly should not get
> a method attached. Then we could just as well remove this check.
>>> isinstance(object, type)
True
>>> isinstance(object(), type)
False
> That is why I proposed to instead exclude a list of basic types
> int, float, list, dict, set and so on.
I'm not sure I understand the proposal. But in any case - it's not necessary. It's clearly possible to determine if a particular value is a type or not.
-glyph
More information about the Twisted-Python
mailing list