Deprecate self
Ben Wolfson
wolfson at uchicago.edu
Thu Apr 19 18:11:07 EDT 2001
In article <vQpD6.47756$J%5.15806884 at news2.rdc2.tx.home.com>, "Rainer
Deyke" <root at rainerdeyke.com> wrote:
> "Alex Martelli" <aleaxit at yahoo.com> wrote in message
> news:9bkvi30uf8 at news1.newsguy.com...
>> "Rainer Deyke" <root at rainerdeyke.com> wrote in message
>> news:OLlD6.46125$J%5.15304817 at news2.rdc2.tx.home.com... How do you stop
>> a class from having subclasses in Python?
>
> def f():
> class C:
> pass
> C()
>>> from klass import klass
>>> def get_atuple(self):
return self.atuple
>>> def init(self, tup):
self.atuple = tup
>>> def set_atuple(self, tup):
self.atuple = tup
>>> TupleHaver = klass({}, {'__init__':init, 'get_atuple':get_atuple,
'set_atuple':set_atuple}) t = TupleHaver((1,2,'hi'))
>>> t.get_atuple()
(1, 2, 'hi')
>>> t.set_atuple(('la la', 'la'))
>>> t.get_atuple()
('la la', 'la')
### part of klass.py
def klass(static_var_dict, methdict):
def make(*initv, **initk):
inst = lambda: None
m = {}
for k in methdict.keys():
m[k] = fako(methdict[k], inst)
inst.func_dict = m
inst.func_dict.update(static_var_dict) m.get('__init__', lambda\
*a, **k: None)(*initv, **initk)
return inst
return make
def fako(func, inst):
return lambda *a, **k: func( *((inst,)+a), **k)
--
Barnabas T. Rumjuggler
Thou hast been called, O Sleep! The friend of woe,
But 'tis the happy who have called thee so.
-- Robert Southey
More information about the Python-list
mailing list