Frans Englich 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 is not invoking it as a function. The parentheses are only for ordering the expression on the right


You can do this too:

>>> print("abc"),("def"),("ghi")
abc def ghi

So I wonder, what _is_ exactly the print statement?

Uh, a statement.

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.

I tried this by overshadowing the print keyword, but that obviously didn't work.. Is defining a two-liner function the right way to go, or is there better ways to approach it?

In the long run, you might want to look into the logging module. In the short run:


def _debug_true(text):
    print >>sys.stderr, text

def _debug_false(text):
    pass

if command_line_debug_option:
    debug = _debug_true
else
    debug = _debug_false

That way you only have to check whether the option is true once in the entire run of your program, not every time you call the debug() function (which is presumably many times).
--
Michael Hoffman
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to