[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Python Code Block error with header option :results output
From: |
Soapy Smith |
Subject: |
Re: [O] Python Code Block error with header option :results output |
Date: |
Sat, 01 Feb 2014 07:34:57 -0500 |
On Sat, 2014-02-01 at 07:56 +0100, Christian Moe wrote:
> > You should only use "return" like that in a python code block when you
> > have ":results value".
>
> To expand briefly on that (since this can be perplexing):
>
> The need to use `return' at all when returning the value is a special
> quirk of Python code blocks, and does not apply to (any?) other languages.
>
> As explained on Worg, with `:results value' (the default),
>
> "Internally, the value is obtained by wrapping the code in a function
> definition in the external language, and evaluating that
> function. Therefore, code should be written as if it were the body of
> such a function. In particular, note that Python does not automatically
> return a value from a function unless a return statement is present, and
> so a ‘return’ statement will usually be required in Python."
>
> http://orgmode.org/manual/Results-of-evaluation.html
>
> So when using `:results output', using `return' causes an error
> because there is no function to return anything from.
>
> Yours,
> Christian
Thank you Christian for the detailed explanation. It is indeed
perplexing at first!
Regards,
Greg