M
MisterPete
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
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