Re: Python (was Re: I did not inhale)

Liste des GroupesRevenir à cl misc 
Sujet : Re: Python (was Re: I did not inhale)
De : david.brown (at) *nospam* hesbynett.no (David Brown)
Groupes : comp.unix.shell comp.unix.programmer comp.lang.misc
Date : 30. Aug 2024, 09:01:13
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <varu8a$dnh3$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0
On 30/08/2024 01:03, Lawrence D'Oliveiro wrote:
On Thu, 29 Aug 2024 14:01:05 +0200, David Brown wrote:
 
On 29/08/2024 02:23, Keith Thompson wrote:
>
Lawrence D'Oliveiro <ldo@nz.invalid> writes:
>
On Wed, 28 Aug 2024 13:29:18 -0700, Keith Thompson wrote:
>
But ok, I found your post and removed all the #end comments.  I found
it just as readable without them as with them.
>
You know what? You are right. That example was just too
well-structured.
>
So why not try to write /all/ your code in a well-structured manner, so
that you don't feel the need to add these "#end" comments?
 Because not all examples can be made that neat, as I demonstrated.
Your example could easily have been written in a more structured manner than you did.  Keith and I both demonstrated that.  (And when you remove the useless stuff from your function, it's even simpler.)
I agree that not /all/ code can easily be written in a neat, well-structured manner - and that occasionally breaking your normal coding convention rules can bring out patterns in the code that make it easier to understand, and easier to write correctly.  But the solid majority of code /can/ be written in a well-structured manner, for most languages.

 
      def register_additional_standard(self, managed_objects) :
          """
          registers additional standard interfaces that are not
          automatically installed at Connection creation time. Currently
          the only one is the object-manager interface, registered with
>
          «conn».register_additional_standard(managed_objects = True)
          """
 Note that Python’s indentation rules don’t apply to multiline string
literals -- don’t you wish they did? So you end up with all that extra
space within the literal. Do you see why I prefer to avoid that?
No - or at least, it is very hard to comprehend why you might prefer the mess you gave.  It is correct that Python multiline strings include any indentation in the strings.  There are three possibilities here - sometimes you want the indents (and thus include them), sometimes you don't want them (and thus you align them at the left of the text), and sometimes you don't care (and thus put them wherever seems neatest). Most function docstrings fall into that third category, since they are mostly used as comments in the code and for the "help" command which ignores the leading indents.
It is probably most common to have multiline docstrings at the left of the file.  I have never before seen a silly mess with manual \n line breaks and line continuation characters, and I hope never to see it again.

 
Line continuation characters in Python are usually an indicator of poor
formatting, or an unhealthy obsession with line length limits.
 I like to keep within a line length limit of about 100 characters.
 
That's a reasonable limit, but does not change my observation.

I don't know if I am more experienced than you in Python (I may have
been using Python for longer, but you may have worked with it more), but
I would say that the "#end" comments directly detract from readability.
 Think about why you bother to indent code in languages where the compiler
ignores such indentation anyway: it means you are expressing the structure
of code in two different ways, one via statement brackets, and the other
via indentation. This redundancy aids in understanding that the code does
what you think it does.
 
In languages with explicit blocking, the delimiters determine what the code does.  The indents show the human reader what the code is supposed to do.  These are, hopefully, the same thing - but they might not be. In Python, as there is only one source of blocking, there is no possibility of such an error (once you have ensured you have no mix of tabs and spaces).
Redundancy is only a help if there is a way to automatically check and enforce consistency.  Without that, redundancy can be worse than useless - if the two methods get out of sync, the casual reader will misunderstand the code, and the careful reader will see there is a problem but not know what it is.
So for languages with explicit blocking, you need to be absolutely committed to keeping consistency, and use the tools you have - editors with automatic indents, gcc's "-Wmisleading-indentation" warning, and anything else to ease the cognitive burden and reduce the risk of inconsistencies.
With Python, that is simply not an issue.
(Another example of such redundancy is when people put comments saying what a piece of code does, rather than making the code itself clear. Changes to the code can easily lead to comments getting out of sync with the code, leading to confusion and misunderstanding.)

Python gets rid of this redundancy, by having the compiler take notice of
the whitespace and removing the statement bracketing symbols. So I put it
back, by adding statement bracketing symbols that the compiler ignores.
And that is worse than useless.
At least with languages that have explicit block delimiters, the compiler will always have some checks on consistency.  And tools (either compiler warnings, advanced editors, linters, etc.) can do more advanced checks.  With comments, you have nothing.

Date Sujet#  Auteur
15 Aug 24 * Re: I did not inhale256Kalevi Kolttonen
16 Aug 24 `* Re: Python (was Re: I did not inhale)255Lawrence D'Oliveiro
16 Aug 24  +* Re: Python (was Re: I did not inhale)250Kaz Kylheku
16 Aug 24  i`* Re: Python (was Re: I did not inhale)249Kalevi Kolttonen
16 Aug 24  i +* Re: Python (was Re: I did not inhale)2John Ames
17 Aug 24  i i`- Re: Python (was Re: I did not inhale)1D
17 Aug 24  i +* Re: Python (was Re: I did not inhale)64Muttley
17 Aug 24  i i+* Re: Python (was Re: I did not inhale)61Dmitry A. Kazakov
17 Aug 24  i ii+* Re: Python (was Re: I did not inhale)58Lawrence D'Oliveiro
18 Aug 24  i iii`* Re: Python (was Re: I did not inhale)57Dmitry A. Kazakov
18 Aug 24  i iii +* Re: Python (was Re: I did not inhale)14Muttley
18 Aug 24  i iii i`* Re: Python (was Re: I did not inhale)13Dmitry A. Kazakov
18 Aug 24  i iii i `* Re: Python (was Re: I did not inhale)12Muttley
18 Aug 24  i iii i  +* Re: Python (was Re: I did not inhale)10Dmitry A. Kazakov
18 Aug 24  i iii i  i+* Re: Python (was Re: I did not inhale)2Kaz Kylheku
18 Aug 24  i iii i  ii`- Re: Python (was Re: I did not inhale)1Dmitry A. Kazakov
19 Aug 24  i iii i  i+- Re: Python (was Re: I did not inhale)1Lawrence D'Oliveiro
19 Aug 24  i iii i  i+- Re: Python (was Re: I did not inhale)1Muttley
25 Aug 24  i iii i  i`* Re: Python (was Re: I did not inhale)5Sebastian
25 Aug 24  i iii i  i `* Re: Python (was Re: I did not inhale)4Dmitry A. Kazakov
25 Aug 24  i iii i  i  +* Re: Python (was Re: I did not inhale)2vallor
25 Aug 24  i iii i  i  i`- Re: Python (was Re: I did not inhale)1Lawrence D'Oliveiro
25 Aug 24  i iii i  i  `- Re: Python (was Re: I did not inhale)1Lawrence D'Oliveiro
18 Aug 24  i iii i  `- Re: Python (was Re: I did not inhale)1Richard Kettlewell
18 Aug 24  i iii +* Re: Python (was Re: I did not inhale)2Kenny McCormack
18 Aug 24  i iii i`- Re: Python (was Re: I did not inhale)1Muttley
18 Aug 24  i iii +* Re: Python (was Re: I did not inhale)5Kaz Kylheku
18 Aug 24  i iii i`* Re: Python (was Re: I did not inhale)4Dmitry A. Kazakov
19 Aug 24  i iii i `* Re: Python (was Re: I did not inhale)3Kaz Kylheku
19 Aug 24  i iii i  `* Re: Python (was Re: I did not inhale)2Dmitry A. Kazakov
19 Aug 24  i iii i   `- Re: Python (was Re: I did not inhale)1Kaz Kylheku
19 Aug 24  i iii `* Re: Python (was Re: I did not inhale)35Lawrence D'Oliveiro
19 Aug 24  i iii  `* Re: Python (was Re: I did not inhale)34Dmitry A. Kazakov
19 Aug 24  i iii   +* Re: Python (was Re: I did not inhale)23David Brown
19 Aug 24  i iii   i+* Re: Python (was Re: I did not inhale)21Dmitry A. Kazakov
19 Aug 24  i iii   ii+* Re: Python (was Re: I did not inhale)4Muttley
19 Aug 24  i iii   iii`* Re: Python (was Re: I did not inhale)3Dmitry A. Kazakov
19 Aug 24  i iii   iii +- Re: Python (was Re: I did not inhale)1Muttley
30 Sep 24  i iii   iii `- Re: Python (was Re: I did not inhale)1Bozo User
19 Aug 24  i iii   ii+* Re: Python (was Re: I did not inhale)12David Brown
20 Aug 24  i iii   iii`* Re: Python (was Re: I did not inhale)11Dmitry A. Kazakov
20 Aug 24  i iii   iii +* Re: Python (was Re: I did not inhale)3Lawrence D'Oliveiro
20 Aug 24  i iii   iii i`* Re: Python (was Re: I did not inhale)2Dmitry A. Kazakov
21 Aug 24  i iii   iii i `- Re: Python (was Re: I did not inhale)1Lawrence D'Oliveiro
20 Aug 24  i iii   iii `* Re: Python (was Re: I did not inhale)7David Brown
20 Aug 24  i iii   iii  `* Re: Python (was Re: I did not inhale)6Dmitry A. Kazakov
20 Aug 24  i iii   iii   +* Re: Python (was Re: I did not inhale)2David Brown
20 Aug 24  i iii   iii   i`- Re: Python (was Re: I did not inhale)1Dmitry A. Kazakov
21 Aug 24  i iii   iii   `* Re: Python (was Re: I did not inhale)3Lawrence D'Oliveiro
21 Aug 24  i iii   iii    `* Re: Python (was Re: I did not inhale)2Dmitry A. Kazakov
22 Aug 24  i iii   iii     `- Re: Python (was Re: I did not inhale)1Lawrence D'Oliveiro
19 Aug 24  i iii   ii`* Re: Python (was Re: I did not inhale)4Keith Thompson
19 Aug 24  i iii   ii `* Re: Python (was Re: I did not inhale)3John Ames
20 Aug 24  i iii   ii  +- Re: Python (was Re: I did not inhale)1Muttley
20 Aug 24  i iii   ii  `- Re: Python (was Re: I did not inhale)1Stefan Ram
19 Aug 24  i iii   i`- Re: Python (was Re: I did not inhale)1Bart
19 Aug 24  i iii   +* Re: Python (was Re: I did not inhale)8Lawrence D'Oliveiro
19 Aug 24  i iii   i`* Re: Python (was Re: I did not inhale)7Dmitry A. Kazakov
19 Aug 24  i iii   i +* Re: Python (was Re: I did not inhale)2Keith Thompson
19 Aug 24  i iii   i i`- Re: Python (was Re: I did not inhale)1Dmitry A. Kazakov
20 Aug 24  i iii   i `* Re: Python (was Re: I did not inhale)4Lawrence D'Oliveiro
20 Aug 24  i iii   i  `* Re: Python (was Re: I did not inhale)3Dmitry A. Kazakov
20 Aug 24  i iii   i   +- Re: Python (was Re: I did not inhale)1Lawrence D'Oliveiro
20 Aug 24  i iii   i   `- Re: Python (was Re: I did not inhale)1D
21 Aug 24  i iii   `* Re: Python (was Re: I did not inhale)2vallor
21 Aug 24  i iii    `- Re: Python (was Re: I did not inhale)1Lawrence D'Oliveiro
18 Aug 24  i ii+- Re: Python (was Re: I did not inhale)1Muttley
18 Aug 24  i ii`- Re: Python (was Re: I did not inhale)1Eric Pozharski
18 Aug 24  i i`* Re: Python (was Re: I did not inhale)2David Brown
18 Aug 24  i i `- Re: Python (was Re: I did not inhale)1Muttley
18 Aug 24  i `* Re: Python (was Re: I did not inhale)182David Brown
18 Aug 24  i  +* C function prototype was Python (was Re: I did not inhale)2James Harris
18 Aug 24  i  i`- Re: C function prototype was Python (was Re: I did not inhale)1David Brown
18 Aug 24  i  +* Re: Python (was Re: I did not inhale)2Keith Thompson
19 Aug 24  i  i`- Re: Python (was Re: I did not inhale)1David Brown
20 Aug 24  i  `* Re: Python (was Re: I did not inhale)177Kalevi Kolttonen
20 Aug 24  i   +* Re: Python (was Re: I did not inhale)3Muttley
20 Aug 24  i   i+- Re: Python (was Re: I did not inhale)1Lew Pitcher
20 Aug 24  i   i`- Re: Python (was Re: I did not inhale)1Kalevi Kolttonen
20 Aug 24  i   +* Re: Python (was Re: I did not inhale)170David Brown
20 Aug 24  i   i`* Re: Python (was Re: I did not inhale)169Kalevi Kolttonen
21 Aug 24  i   i +* Re: Python (was Re: I did not inhale)161David Brown
21 Aug 24  i   i i+* Re: Python (was Re: I did not inhale)142Muttley
21 Aug 24  i   i ii`* Re: Python (was Re: I did not inhale)141David Brown
21 Aug 24  i   i ii `* Re: Python (was Re: I did not inhale)140Muttley
21 Aug 24  i   i ii  `* Re: Python (was Re: I did not inhale)139David Brown
21 Aug 24  i   i ii   `* Re: Python (was Re: I did not inhale)138Muttley
21 Aug 24  i   i ii    `* Re: Python (was Re: I did not inhale)137David Brown
22 Aug 24  i   i ii     `* Re: Python (was Re: I did not inhale)136Muttley
22 Aug 24  i   i ii      +* Re: Python (was Re: I did not inhale)6D
22 Aug 24  i   i ii      i+* Re: Python (was Re: I did not inhale)4Muttley
22 Aug 24  i   i ii      ii`* Re: Python (was Re: I did not inhale)3D
22 Aug 24  i   i ii      ii `* Re: Python (was Re: I did not inhale)2Lew Pitcher
22 Aug 24  i   i ii      ii  `- Re: Python (was Re: I did not inhale)1Muttley
22 Aug 24  i   i ii      i`- Re: Python (was Re: I did not inhale)1David Brown
22 Aug 24  i   i ii      `* Re: Python (was Re: I did not inhale)129David Brown
22 Aug 24  i   i ii       +* Re: Python (was Re: I did not inhale)120Muttley
26 Aug 24  i   i ii       i`* Re: Python (was Re: I did not inhale)119John Ames
26 Aug 24  i   i ii       i +- Re: Python (was Re: I did not inhale)1Muttley
26 Aug 24  i   i ii       i `* Re: Python (was Re: I did not inhale)117Lawrence D'Oliveiro
26 Aug 24  i   i ii       i  +* Re: Python (was Re: I did not inhale)113John Ames
26 Aug 24  i   i ii       i  +* Re: Python (was Re: I did not inhale)2Bart
27 Aug 24  i   i ii       i  `- Re: Python (was Re: I did not inhale)1Kaz Kylheku
22 Aug 24  i   i ii       `* Re: Python (was Re: I did not inhale)8Lawrence D'Oliveiro
21 Aug 24  i   i i`* Re: Python (was Re: I did not inhale)18Lawrence D'Oliveiro
21 Aug 24  i   i `* Re: Python (was Re: I did not inhale)7Muttley
21 Aug 24  i   `* Re: Python (was Re: I did not inhale)3Lawrence D'Oliveiro
16 Aug 24  `* Re: Python (was Re: I did not inhale)4Kalevi Kolttonen

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal