Bind an instance of a base to a subclass - can this be done?
Diez B. Roggisch
deets at nospam.web.de
Wed May 24 22:04:07 CEST 2006
Lou Pecora schrieb:
> I've been scanning Python in a Nutshell, but this seems to be either
> undoable or so subtle that I don't know how to do it.
> I want to subclass a base class that is returned from a Standard Library
> function (particularly, subclass file which is returned from open). I
> would add some extra functionality and keep the base functions, too.
> But I am stuck.
> class myfile(file):
> def myreadline():
> #code here to return something read from file
> Then do something like (I know this isn't right, I'm just trying to
> convey the idea of what I would like)
> s=mf.myreadline() # Use my added function
> mf.close() # Use the original file function
> Possible in some way? Thanks in advance for any clues.
Nope, not in that way. But you might consider writing a proxy/wrapper
for an object. That looks like this (rouch sketch from head):
def __init__(self, f):
self._f = f
def __getattr__(self, name):
return getattr(self._f, name)
Then you do
f = FileWrapper(open(name, mode))
More information about the Python-list