[Tutor] Difference between object and instances
Gonçalo Rodrigues
op73418 at mail.telepac.pt
Sun Mar 7 21:17:12 EST 2004
Em Mon, 8 Mar 2004 00:43:40 -0000, "Alan Gauld"
<alan.gauld at blueyonder.co.uk> atirou este peixe aos pinguins:
>
>> What is the real difference between objects and instances?
>
>Terminology.
>
>The generally accepted terms are
>
>Class and Object where Object is an instanciation of a class.
>
>but in some languages, including Python things can be objects
>which are not instances of classes - for example functions,
>and even classes themselves!
>
Actually, in Python (*) -- I'm using 2.3 but this is true in 2.2
already -- functions and classes themselves are instances of a some
class.
>>> def f(arg):
... pass
...
>>> f
<function f at 0x010D6B30>
>>> f.__class__
<type 'function'>
>>> id(f)
17656624
>>> import types
>>> isinstance(f, types.FunctionType)
True
As you can see it an instance of a class. You can't subclass
FunctionType although in c.l.py a request for it has appeared
recently. The same for classes
>>> F
<class '__main__.F'>
>>> id(F)
13570592
>>> F.__class__
<type 'type'>
>>> isinstance(F, type)
True
You *can* subclass the class type. And then we are in metaclass
programming lala-land.
In fact, ATM I can't recall any object in Python that's not an
instance of some class -- does anybody have a counterexample?
With my best regards,
G. Rodrigues
(*) This is not true in Java for example.
More information about the Tutor
mailing list