Humor: The Evolution of a Programmer
Bill Sconce
sconce at in-spec-inc.com
Wed Nov 13 10:19:44 EST 2002
bscott at ntisys.com writes:
> On Tue, 12 Nov 2002, at 10:08pm, sconce at in-spec-inc.com wrote:
>> Python hacker
>>
>> 'Hello, world.'
>
> Transcript of my shell session:
>
> $ cat > hw.py
> 'Hello, world.'
> ^D
> $ python hw.py
> $
>
> What did I do wrong?
Omigosh. I must have been too cryptic. What was "wrong" was $.
No one said $.
A Python hacker seldom needs to resort to a shell. :)
Seriously, earlier posts were correct. When Python evaluates
an expression at the interactive prompt, and your interactive
expression doesn't say what to do with the result (e.g.,
no = sign or no "print") Python assumes the "print". As you
develop a program you do a lot of that kind of inspection -
it's only a savings of typing "print" each time, but it adds up.
A typically "Pythonic" streamlining.
>>> print 2+2
4
>>> 2+2
4
There is nothing special about the case of a string expression.
Python does the same for any kind of object.
>>> somefile = open('spam.eggs', 'w')
>>> somefile
<open file 'spam.eggs', mode 'w' at 0x10103758>
>>> print somefile
<open file 'spam.eggs', mode 'w' at 0x10103758>
In a running program you don't usually want that behavior. For
instance, an expression might be something whose returned value
you don't need. An example might be an expresssion which is only
a call to a function.
>>> somefile.close() # Close the file
>>> # Ahhh. Silence..
>>> print somefile.close() # Same, AND print what's returned
None # ..which is the empty ojbect, None
>>>
[My example is knowingly a little contrived; please forgive.
There's more to the way the empty object behaves. This example
is intended to show the flavor of Python's design.]
Extra credit, what will the following do (if you've just stepped
through the statements above)?
>>> print somefile
More information about the gnhlug-discuss
mailing list