What is print? A function?

Roy Smith roy at panix.com
Sun Jan 23 16:04:41 EST 2005


Frans Englich <frans.englich at telia.com> wrote:

> Nah, I don't think it's a function, but rather a builtin "statement". But 
> it's possible to invoke it as an function; print( "test" ) works fine.

That's not calling it as a function. The parens in this case are simply 
evaluated as grouping operators around the string literal.
 
> So I wonder, what _is_ exactly the print statement? The untraditional way of 
> invoking it(without paranteses) makes me wonder.

It's a statement, just like "write" in Fortran.  When C came around, the 
idea of a language having no built-in print statement and having to call 
a function to generate output was "untraditional".  The function was 
named "printf" (with an "f" at the end) to emphasize that it was a 
function call, not a built-in language keyword.  Java, and many other 
quasi-C-based languages also use print functions, and this has become so 
common that people have come to expect it.  It's even a function in 
Perl, although that language's devil-may-care attitude about punctuation 
makes it difficult to tell for sure :-)
 
> The reason I thinks about this is I need to implement a debug print for my 
> program; very simple, a function/print statement that conditionally prints 
> its message whether a bool is true. Not overly complex.

You can certainly define a function which conditionally calls print, you 
just can't call it "print", because that's a reserved word.  But, before 
you get too far down that path, you might want to explore the logging 
module.  It suffers from a bit of kitchen-sink syndrome, so it may be 
more complicated than you want to deal with, but it's worth taking a 
look at.  You may discover that what you want to do is already done for 
you.



More information about the Python-list mailing list