Is there a way to globally set the print function separator?

John Black jblack at nopam.com
Mon Oct 9 17:04:36 EDT 2017


In article <org8pq$fgm$1 at gioia.aioe.org>, python at example.invalid says...
>> Le 09/10/2017 à 18:22, John Black a écrit :
> > I want sep="" to be the default without having to specify it every time I
> > call print. Is that possible?
>> >>> oldprint = print
> >>> def print(*args,**kwargs):
> ... oldprint(*args,**kwargs,sep='')
> ...
> >>> print(1,2,3)
> 123

Winner! Thanks all.
I want to make sure I understand what this line is doing: 
> oldprint = print

Experimenting, I find this is not a rename because I can use both 
function names. It looks it literally copies the function "print" to 
another function called "oldprint". But now, I have a way to modify the 
builtin funciton "print" by referencing oldprint. Without oldprint, I 
have no way to directly modify print? For example, based on your post, I 
tried:
def print(*args, **kw):
 print(*args, sep='', **kw)
meaning print calls print (itself) with sep=''. But this failed and I 
guess the reason is that it would keep calling itself recursively adding 
sep='' each time? Thanks.
John Black


More information about the Python-list mailing list

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