How can I inherit from file but stil create an instance that writes to
stdout?
-----------
     I'm writing a file-like object that has verbosity options (among
some other things). I know I could just set self.file to a file object
rather than inheriting from file. I started with something like this
(simplified for clarity):

class Output(object):
    def __init__(self, file=sys.stdout, verbosity=1):
        self.verbosity = verbosity
        self.file = file

    def write(self, string, messageVerbosity=1):
        if messageVerbosity <= self.verbosity:
            self.file.write(string)
...

     but it is frustrating me that if I try to inherit from file it
works fine for regular files but I can't figure out a clean way to
instantiate an object that writes to stdout using sys.stdout.
something like the following:


class Output(object):
    def __init__(self, file=sys.stdout, verbosity=1):
        self.verbosity = verbosity
        self.file = file

    def write(self, string, messageVerbosity=1):
        if messageVerbosity <= self.verbosity:
            self.file.write(string)
...

I hope that's clear. Is it just a bad idea to inherit from file to
create a class to write to stdout or am I missing something? Any
insight is appreciated.

Thanks,
Pete

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to