473,379 Members | 1,187 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,379 software developers and data experts.

Are line continuations needed?

Hi all,

Python lets you continue a single logical line across more than one
physical line, either by putting a \ at the end or letting it happen
automatically with an incomplete infix operator.

I'm wondering how often is this feature needed? Would there be any
problems if it weren't part of the language?

--
"Sore wa himitsu desu."
To reply by email, remove
the small snack from address.
http://www.esatclear.ie/~rwallace
Jul 18 '05 #1
11 1589
Russell Wallace wrote:
Hi all,

Python lets you continue a single logical line across more than one
physical line, either by putting a \ at the end or letting it happen
automatically with an incomplete infix operator.

I'm wondering how often is this feature needed? Would there be any
problems if it weren't part of the language?


I just needed to use this a few minutes ago, in a class declaration ...

class ParticleDistributionBehaviorServer \
(Microphysics__POA.ParticleDistributionBehavior):

I had to split the line to fit within 80 columns, and without the '\'
character I get the following error:

=====
$ python scoping_server.py --POA
File "scoping_server.py", line 8
class ParticleDistributionBehaviorServer
^
SyntaxError: invalid syntax
=====

So the fact that you don't need it in the case of incomplete expressions
eliminates *most* of the need for it, but there are still a few cases
where it is required.

Regards,
Derek.
Jul 18 '05 #2

"Derek Thomson" <de***@hiredgoons.org> wrote in message
news:40******@duster.adelaide.on.net...
Russell Wallace wrote:
Hi all,

Python lets you continue a single logical line across more than one
physical line, either by putting a \ at the end or letting it happen
automatically with an incomplete infix operator.

I'm wondering how often is this feature needed? Would there be any
problems if it weren't part of the language?

I just needed to use this a few minutes ago, in a class declaration ...

class ParticleDistributionBehaviorServer \
(Microphysics__POA.ParticleDistributionBehavior):

I had to split the line to fit within 80 columns, and without the '\'
character I get the following error:

=====
$ python scoping_server.py --POA
File "scoping_server.py", line 8
class ParticleDistributionBehaviorServer
^
SyntaxError: invalid syntax
=====

So the fact that you don't need it in the case of incomplete expressions
eliminates *most* of the need for it, but there are still a few cases
where it is required.


Technically, you could have split it at the period, but that
might be even worse in terms of readability.

BTW - why did it have to fit in 80 columns?

John Roth
Regards,
Derek.

Jul 18 '05 #3
Derek Thomson <de***@hiredgoons.org> writes:
Russell Wallace wrote:
Hi all,

Python lets you continue a single logical line across more than one
physical line, either by putting a \ at the end or letting it happen
automatically with an incomplete infix operator.

I'm wondering how often is this feature needed? Would there be any
problems if it weren't part of the language?


I just needed to use this a few minutes ago, in a class declaration ...

class ParticleDistributionBehaviorServer \
(Microphysics__POA.ParticleDistributionBehavior):

I had to split the line to fit within 80 columns, and without the '\'
character I get the following error:

=====
$ python scoping_server.py --POA
File "scoping_server.py", line 8
class ParticleDistributionBehaviorServer
^
SyntaxError: invalid syntax
=====


This ought to work:

class ParticleDistributionBehaviorServer(
Microphysics__POA.ParticleDistributionBehavior):

--
Mark Jackson - http://www.alumni.caltech.edu/~mjackson
Hate to interrupt with a spelling flame, but it's "Cheney,"
not "Chaney." It may only be one letter, but it's 998 faces.
- Mike Peterson
Jul 18 '05 #4
John Roth wrote:
Derek Thomson wrote:

class ParticleDistributionBehaviorServer \
(Microphysics__POA.ParticleDistributionBehavior):

[snip]

So the fact that you don't need it in the case of incomplete expressions
eliminates *most* of the need for it, but there are still a few cases
where it is required.

Technically, you could have split it at the period, but that
might be even worse in terms of readability.


I didn't know that, but yes, it would be ugly.

BTW - why did it have to fit in 80 columns?


Because that's our coding standard. But it wouldn't matter if it was 120
columns, or in fact any number you specify - I can still construct an
example that won't work.

Regards,
Derek.
Jul 18 '05 #5
Mark Jackson wrote:

This ought to work:

class ParticleDistributionBehaviorServer(
Microphysics__POA.ParticleDistributionBehavior):


In fact it does work - I should have thought of that. I've just checked
in the change to CVS. Thanks!

Now I'll have to think of another case ... I'm sure there was another ...

Regards,
Derek.
Jul 18 '05 #6
Russell Wallace wrote:
Python lets you continue a single logical line across more than one
physical line, either by putting a \ at the end or letting it happen
automatically with an incomplete infix operator.

I'm wondering how often is this feature needed? Would there be any
problems if it weren't part of the language?


Just had this example:

d = { 'key1' : 'A very very long string of several hundred '\
'characters. I could use a multi-line string but '\
'then either left white space would be part of the '\
'string or I would have to align it at column 0 '\
'(ugly). I could embed it into a pair of brackets '\
'but I see no advantage over \\. Finally I could '\
'put this string on a single line (also ugly and hard '\
'to read).'
...
}
Mit freundlichen Gruessen,

Peter Maas

--
-------------------------------------------------------------------
Peter Maas, M+R Infosysteme, D-52070 Aachen, Hubert-Wienen-Str. 24
Tel +49-241-93878-0 Fax +49-241-93878-20 eMail pe********@mplusr.de
-------------------------------------------------------------------
Jul 18 '05 #7
Peter Maas wrote:
Russell Wallace wrote:
Python lets you continue a single logical line across more than one
physical line, either by putting a \ at the end or letting it happen
automatically with an incomplete infix operator.

I'm wondering how often is this feature needed? Would there be any
problems if it weren't part of the language?


Just had this example:

d = { 'key1' : 'A very very long string of several hundred '\
'characters. I could use a multi-line string but '\
'then either left white space would be part of the '\
'string or I would have to align it at column 0 '\
'(ugly). I could embed it into a pair of brackets '\
'but I see no advantage over \\. Finally I could '\
'put this string on a single line (also ugly and hard '\
'to read).'
...
}

d = {1: "Hi Peter, "

.... "what do you "
.... "think of this?"}

Peter

Jul 18 '05 #8
Peter Maas <pe********@mplusr.de> writes:
Just had this example:

d = { 'key1' : 'A very very long string of several hundred '\
'characters. I could use a multi-line string but '\
'then either left white space would be part of the '\
'string or I would have to align it at column 0 '\
'(ugly). I could embed it into a pair of brackets '\
'but I see no advantage over \\. Finally I could '\
'put this string on a single line (also ugly and hard '\
'to read).'
...
}


Actually that's unnecessary since you are already in a braced
expression from the dictionary constructor. So the lines are
implicitly continuation lines until you close the dictionary, and the
compilers combination of adjacent string constants still works. You
can drop the continuation characters and it'll give the same
dictionary.

I tend to construct parenthetical expressions if I can to avoid the
explicit line continuation character - mostly since I think it looks
nicer, but there are some cases where I prefer the contination.
There's normally an alternative to the continuation, but one that I
don't consider as readable.

For example, one place where I've used line continuations was in
explicit from imports, such as:

from some.package.exceptions import ExceptionName, OtherName, \
AnotherName, AndAnotherName

where I find this more readable than repeating the "from <package>
import" portion of the line multiple times.

I also use it to suppress leading newlines in triple quoted strings,
while permitting me to write the entire string at the same indent
level, e.g.:

MSG = """\
blah blah blah

and some more blah blah blah
"""

I'll also use it sometimes for string formatting operations (either
standalone or as part of print) where sometimes I think it looks nicer
than putting the entire expression in parenthesis), e.g.:

some_variable = 'This is a formatting string args %s %s %s' % \
(argument1, argument2, argument3)
-- David
Jul 18 '05 #9
On Wed, 07 Apr 2004 14:05:29 GMT, wa**************@eircom.net (Russell
Wallace) wrote:
Hi all,

Python lets you continue a single logical line across more than one
physical line, either by putting a \ at the end or letting it happen
automatically with an incomplete infix operator.

I'm wondering how often is this feature needed? Would there be any
problems if it weren't part of the language?
I don't have any ready examples, but I do occasionally need it, if
only for readability porpoises, or more often to fit a line to a
certain length limit. If a parenthetical expression will work, and
doesn't look stranger (really can't think of a case), I'll use that.

But problems there'll surely be - with legacy code compatibility.

--
"Sore wa himitsu desu."

Not really it isn't ;-)

--
Christopher
Jul 18 '05 #10
On Wed, 07 Apr 2004 17:53:00 GMT, Christopher Koppler
<kl******@chello.at> wrote:
On Wed, 07 Apr 2004 14:05:29 GMT, wa**************@eircom.net (Russell
Wallace) wrote:
Python lets you continue a single logical line across more than one
physical line, either by putting a \ at the end or letting it happen
automatically with an incomplete infix operator.
I don't have any ready examples, but I do occasionally need it, if
only for readability porpoises, or more often to fit a line to a
certain length limit. If a parenthetical expression will work, and
doesn't look stranger (really can't think of a case), I'll use that.


Okay, thanks.
But problems there'll surely be - with legacy code compatibility.
*nod* I was more asking whether it was a good idea to include it
originally than whether it could be removed now, though I suppose
since 3.0 is supposed to be breaking with backward compatibility,
there's the question of whether it should be retained there.
Not really it isn't ;-)


^.^

--
"Sore wa himitsu desu."
To reply by email, remove
the small snack from address.
http://www.esatclear.ie/~rwallace
Jul 18 '05 #11
On Wed, 07 Apr 2004 14:05:29 GMT,
wa**************@eircom.net (Russell Wallace) wrote:
Python lets you continue a single logical line across more than
one physical line, either by putting a \ at the end or letting
it happen automatically with an incomplete infix operator. I'm wondering how often is this feature needed? Would there be
any problems if it weren't part of the language?


Completely contrived:

if a == b or b == c or c == d or d == e or e == f or f == g ....

No, I can't imagine this sort of thing actually coming up, and
yes, it's "fixable" with some extra parenthesese:

if (a == b or b == c or c == d) or (d == e or e == f
or f == g ....

Regards,
Heather

--
Heather Coppersmith
That's not right; that's not even wrong. -- Wolfgang Pauli
Jul 18 '05 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Dennis | last post by:
I started a new thread because i cant reply on the older one. Thank you very much Rick for the usefull reply. But i'v got another question. When drawing the line, you cant see the line untill you...
17
by: Mike Thompson | last post by:
'Seaside' is a Smalltalk framework for what might be called "Modal Web Development" or "Synchronous Web Programming", or even "Continuation Based Web Apps". http://www.beta4.com/seaside2/ ...
2
by: Jasper Recto | last post by:
I have a statement that I can't seem to use Line Continuations on it: Progress = "V:\PROGRESS\bin\prowin32.exe V:\VANTAGE\db\vantage.db_ -ininame V:\VANTAGE\vantage.ini -pf...
13
by: Kiran Dalvi | last post by:
Hi, Can anybody please suggest me an efficient approach to find out all possible permutations of a String. e.g. My input string = "ABC". My program should give an output like .... ABC, ACB, BAC,...
2
by: Florian Lindner | last post by:
Hello, http://docs.python.org/lib/module-ConfigParser.html writes: "with continuations in the style of RFC 822; " what is meant with these continuations? Thanks, Florian
6
by: vasudevram | last post by:
Hi, I am Googling and will do more, found some stuff, but interested to get viewpoints of list members on: Continuations in Python. Saw a few URLs which had some info, some of which I...
13
by: Don | last post by:
Hi, I have an SQL string that I'm trying to code into VBA and it's giving me trouble. I tried to use line continuation and concatenation as best I can to make it work. However, I'm stuck. I know...
26
by: gnuist006 | last post by:
Again I am depressed to encounter a fundamentally new concept that I was all along unheard of. Its not even in paul graham's book where i learnt part of Lisp. Its in Marc Feeley's video. Can...
7
by: miller.paul.w | last post by:
I've been doing some thinking, and I've halfway convinced myself of the following statement: that threads as implemented by Python (or Java) are exactly equivalent to one-shot continuations in...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.