Can a class instance also be a class?
Carl Banks
imbosol at vt.edu
Thu Aug 15 00:07:10 EDT 2002
Blair Hall wrote:
> I'm betting that the answer is no, but if I am wrong please explain!
>
> The background to my question is that I was wondering about the most
> appropriate ways of writing classes that are parameterized (like C++
> templates).
>
>
> My first choice was to wrap a class definition in a function, like
>
> def _T_aClass(some_T):
> class _aClass(object):
> # ... uses some_T for something in body
>
> return _aClass
>
> This solution seems ok.
This is perfectly reasonable and concise; I suggest you not deviate
from it (at least until the optimization phase, at which point you
might want to cache the parameters).
> I wondered if a class could do something similar.
> My first attempt doesn't look good but perhaps there
> are improvements possible?
>
> class _T_aClass(object):
>
> def __init__(self,some_T):
> class _aClass(object):
> # ... uses some_T for something in body
> self.__theClass
>
> def __call__(self):
> return self.__theClass
>
> If nothing else, I don't like the fact that an instance of _T_aClass is
> an object which when called
> like a function returns a class.
Why? What does the above gain for you, besides more complexity in
both its defintion and use?
--
CARL BANKS
http://www.aerojockey.com
More information about the Python-list
mailing list