[Python-Dev] New Wiki page - PrintAsFunction

Vincenzo Di Massa hawk78_it at yahoo.it
Mon Sep 5 00:38:23 CEST 2005


Hello,
This is my first post here.
I like python a lot: great job people!
Thank you!
Alle 10:28, sabato 03 settembre 2005, Ron Adam ha scritto:
> Nick Coghlan wrote:
> > All,
> >
> > I put up a Wiki page for the idea of replacing the print statement with
> > an easier to use builtin:
> >
> > http://wiki.python.org/moin/PrintAsFunction
> >
> > Cheers,
> > Nick.
>> Looks like a good start, much better than just expressing opinions. :-)
>>> How about making it a class?

I like the object idea, really a lot!
>> There are several advantages such as persistent separators and being
> able to have several different instances active at once.
>> Cheers,
> Ron
>>
I think savesep is unusefull.
import sys
class Print(object):
 newline = '\n'
 sep = ' '
 def __init__(self, out=sys.stdout, println=""):
 self.out = out
 self._print=self.printNOln
 
 def __call__(self, *args, **kwds):
 self._print(*args, **kwds)
 def printNOln(self, *args, **kwds):
 try:
 sep = kwds['sep']
 except KeyError:
 sep = self.sep
 for arg in args[:1]:
 self.out.write(str(arg))
 for arg in args[1:]:
 self.out.write(sep)
 self.out.write(str(arg))
 
 def println(self, *args, **kwds):
 self.printNOln(*args, **kwds)
 self.out.write(self.newline)
> # default "builtin" instance
> write = Print() # could be print in place of write in python 3k.
>>write._print=write.println
>> # standard printing
 write(1, 2, 3)
>> # print without spaces
 write(1, 2, 3, sep='')
>> # print comma separated
 write(1, 2, 3, sep=', ')
>> # or
> write.sep = ', ' # remain until changed
> write(1, 2, 3)
> write(4, 5, 6)
> write.sep = ' '
>> # print without trailing newline
write._print=write.printNOln
> write(1, 2, 3)
>> # print to a different stream
> printerr = Print(sys.stderr)
printerr._print=write.println 
printerr(1, 2, 3)
>> # print a simple sequence
write._print=write.println
write(*range(10))
>> # Print a generator expression
write(*(x*x for x in range(10)))
>> # print to file
> f = open('printout.txt','w')
> fileprint = Print(f)
> fileprint("hello world\n")
> f.close()

Does this look good?
Ciao 
Vincenzo
>>>>> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> http://mail.python.org/mailman/options/python-dev/hawk78_it%40yahoo.it

	
	
		
___________________________________ 
Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB 
http://mail.yahoo.it


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /