design question, metaclasses?

Aaron Brady castironpi at gmail.com
Sun Apr 12 21:23:21 CEST 2009


On Apr 12, 1:30 pm, Darren Dale <dsdal... at gmail.com> wrote:
> On Apr 11, 2:15 pm, Darren Dale <dsdal... at gmail.com> wrote:
>
>
_
>
> > format1.Group # implementation of group in format1
> > format2.Group # ...
> > Base.DerivedGroup # base implementation of DerivedGroup, not directly
> > useful
> > format1.DerivedGroup = Base.DerivedGroup(format1.Group) # useful
> > format2.DerivedGroup = Base.DerivedGroup(format2.Group) # useful
>
_
>
> class Group1(object):
>
>     def origin(self):
>         return "Group1"
>
> class Group2(object):
>
>     def origin(self):
>         return "Group2"
>
> def _SubGroup(superclass):
>
>     class SubGroup(superclass):
>         pass
>
>     return SubGroup
>
> SubGroup = _SubGroup(Group2)
> sub_group = SubGroup()
>
> print sub_group.origin()

You can create new types in one statement:

SubGroup= type( "SubGroup", ( BaseGroup, ), { } )



More information about the Python-list mailing list