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@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 _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com