Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: Dynamically determine base classes on instantiation

Thread Tools

Re: Dynamically determine base classes on instantiation

Posts: n/a
On 15/08/2012 22:17, Thomas Bach wrote:
> Hi list,
> I'm confronted with a strang problem I cannot find a clean solution
> for. To me it seems like I need meta-classes. Anyway, I stucked a bit
> deeper in that topic and couldn't find a proper solution neither. But,
> judge for yourselve.
> I want a class that determines on instantiating its base classes
> dynamically. Consider the following two use cases
> a = Foo(['a', 'list']) # returns an instance that behaves like a list
> assert len(a) == 2
> assert a[0] == 'a'
> assert a == ['a', 'list']
> assert isinstance(a, list) # This would be nice, but no must-have
> b = Foo({'blah': 8}) # returns an instance that behaves like a dict
> assert b['blah'] == 'blah'
> assert b == {'blah': 8}
> assert isinstance(b, dict) # again, no must-have
> a.do_something() # common function to both instances as defined
> b.do_something() # in the Foo class
> What I'm currently doing something like the following:
> class Foo(object):
> def __init__(self, obj):
> self._obj = obj
> def __len__(self):
> return len(self._obj)
> def __getitem__(self, name):
> return self._obj[name]
> # …
> def do_something(self):
> # do something on self._obj
> pass
> Which seems ugly. Is there a way to provide the functions of `list'
> and `dict' in Foo's look-up path without having to write all the
> stubs myself?

Does Foo have to be a class? Couldn't it just be a factory function?
Reply With Quote

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Dynamically determine base classes on instantiation Thomas Bach Python 18 08-18-2012 10:36 AM
Explicit instantiation of STL vector demands explicit instantiation of all the templates it using internally. C++ 1 12-25-2006 03:51 PM
dynamically determine the base href value Guoqi Zheng ASP .Net 3 01-13-2005 05:33 PM
Can I using reflection to get all child classes or classes undera package dynamically? Carfield Yim Java 1 05-31-2004 05:33 PM
Base Classes in .exe, derived classes in .dll Colin Goudie C++ 6 01-26-2004 03:18 PM