On Wed, 29 Jun 2022 at 11:00, Rob Cliffe via Python-list
<
pytho...@python.org> wrote:
>
> On 26/06/2022 23:22, Jon Ribbens via Python-list wrote:
> It's actually not to do with 1-line blocks, just attempting to define 2
> functions "at once":
>
>
> 22:27:23 C:\>python
> Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32
> bit (Intel)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> def f():
> ... return 42
> ... def g():
> File "<stdin>", line 3
> def g():
> ^
> SyntaxError: invalid syntax
> >>>
>
> But you are right that adding a blank line after the first function
> definition solves the "problem".
And if you have something where you want to copy and paste multiple
statements, there are a few ways to do it:
1) Put "if 1:" at the top. That makes it a single block, so you can
paste in as much as you like, as long as the only blank line is at the
end.
2) Put the code into a file and then use "python3 -i setup.py". That
runs all the code, then drops you into the REPL in that context.
3) Put the code into a file, and inside the REPL, "from setup import
*". Unlike option 2, this can be done after the beginning of the
session. Downside: editing setup.py and reimporting won't apply your
changes.
ChrisA