This might have something to do with the class being derived from file.

I've written it so that it doesn't derive from file, and it works.

class File_and_console():
        def __init__(self, *args):
                self.fileobj = open(*args)
        def write(self, s):
                self.fileobj.write(s)
                print s,
        
f = File_and_console('testout.tmp','w')
f.write('hello')
print >>f,'hello',


On 1/15/08, iu2 <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I'm trying to write data to both a file and the console, so I did:
>
> class File_and_console(file):
>        def write(self, s):
>                file.write(self, s)
>                print s,
>
> >>> f = File_and_console('1.txt', 'w')
> >>> f.write('hello')
> hello
> >>> print >>f, 'world'
> >>>
>
> the 'write' method works, but 'print >>' doesn't, it writes only to
> the file. It doesn't actually call File_and_console.write
>
> Why? How can I fix it?
> Thanks
> iu2
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to