On Tue, Dec 21, 2010 at 6:08 AM, David Hutto <smokefl...@gmail.com> wrote: >> >> Note that print can actually only be used as a statement in python 2. >> It just so happens that you can include parentheses in the statement. >> Though that makes it look similar to a function call, it certainly is >> not. You'll see that when you try to supply multiple arguments to the >> "function." This makes python suddenly interpret the parentheses as a >> tuple, making it obviously not a function call. > > However, it's declared as a NoneType in Python 3.1.2: > >>>> x = print('test','test1') > test test1 >>>> x >>>> type(x) > <class 'NoneType'> >>>> > > I haven't gone further than that to test it's 'tupleness', or that > might not have been what you meant by it being 'interpreted as a > tuple'. >
Sorry, I haven't made myself clear. In python3, print is a function, and it return None. I'm not talking about python3 now, though. Everything below will refer to python 2.x In python2, print is a statement. The print statement in python2 can sometimes look like a function call, but it never is: Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> print("hello") hello See? it looks like a function call, but it actually isn't. for proof, try to assign its return value: >>> a = print("hello") File "<stdin>", line 1 a = print("hello") ^ SyntaxError: invalid syntax The parentheses that make this thing look like a function call so much are just regular old parentheses. This becomes apparent when we compare the output from these two statements: >>> print('a', 'b') ('a', 'b') >>> print 'a', 'b' a b >>> The parentheses are part of what's being printed now! That's because ('a', 'b') is interpreted as a tuple in this case. In python3, it would have been interpreted as a call to the print function, with arguments 'a' and 'b'. But in python2 you can't even have a function named print, because print is a keyword used in the print statement. Hugo _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor