| Deutsch English Français Italiano |
|
<va9d5a$qobt$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!2.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: David Brown <david.brown@hesbynett.no>
Newsgroups: comp.unix.shell,comp.unix.programmer,comp.lang.misc
Subject: Re: Python (was Re: I did not inhale)
Date: Fri, 23 Aug 2024 09:19:06 +0200
Organization: A noiseless patient Spider
Lines: 49
Message-ID: <va9d5a$qobt$1@dont-email.me>
References: <uu54la$3su5b$6@dont-email.me> <uvbfii$3mom0$1@news.xmission.com>
<20240412094809.811@kylheku.com> <87il0mm94y.fsf@tudado.org>
<way-20240413091747@ram.dialup.fu-berlin.de> <87il0lldf8.fsf@tudado.org>
<choices-20240413123957@ram.dialup.fu-berlin.de>
<v9lm2k$12qhv$1@dont-email.me> <v9m4gd$14scu$1@dont-email.me>
<20240815182717.189@kylheku.com> <v9npls$1fjus$1@dont-email.me>
<v9t204$2dofg$1@dont-email.me> <va28pi$3dldm$1@dont-email.me>
<va2ro9$3gd7v$1@dont-email.me> <va2vt0$3h3gj$1@dont-email.me>
<va44rh$3p1l6$1@dont-email.me> <va45eq$3pkt9$1@dont-email.me>
<va4aut$3q4g0$1@dont-email.me> <va4fbr$3qvij$1@dont-email.me>
<va5108$3tmmd$1@dont-email.me> <va51ok$3tqr9$1@dont-email.me>
<va5ec2$3vluh$1@dont-email.me> <va6q4g$c1a7$1@dont-email.me>
<va6rpa$c6bg$1@dont-email.me> <va6uqg$clga$1@dont-email.me>
<va74vk$dfb0$1@dont-email.me> <va8kim$ka4q$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 23 Aug 2024 09:19:07 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="edca87e576d404b60d06ae6a1baeda30";
logging-data="876925"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/UPFza/tLduzrVpOo/Lm0997N4QHO11Xw="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.11.0
Cancel-Lock: sha1:MyQJQPke5Vxyk8AMZn4OJ8yfeAg=
Content-Language: en-GB
In-Reply-To: <va8kim$ka4q$2@dont-email.me>
Bytes: 3522
On 23/08/2024 02:19, Lawrence D'Oliveiro wrote:
> On Thu, 22 Aug 2024 12:47:16 +0200, David Brown wrote:
>
>> On 22/08/2024 11:02, Lawrence D'Oliveiro wrote:
>>>
>>> Python prohibits those space/tab inconsistencies.
>>>
>> No, it does not. Python treats tabs (at the start of lines, which is
>> the only relevant point here) as 8 spaces by default. You can change
>> that with command-line flags if you want. But it is quite happy with
>> mixtures of tabs and spaces as long as the result after tab-to-space
>> conversion is consistent with Python syntax.
>
> src = \
> """
> def fun() :
> \t\tprint("line 1")
> \t\x20\x20\x20\x20\x20\x20\x20\x20print("line 2")
>
> fun()
> """
>
> exec(src)
>
> Output:
>
> TabError: inconsistent use of tabs and spaces in indentation
src = \
"""
def fun() :
\t\x20\x20\x20\x20\x20\x20\x20\x20print("line 1")
\t\x20\x20\x20\x20\x20\x20\x20\x20print("line 2")
fun()
"""
Mixtures of tabs and spaces are accepted without complaint.
But you are right that some of the worst or most dangerous cases are
rejected by Python. Python 3 is stricter here than Python 2 was, and
much of my long-term code is Python 2.
(The incompatibilities between Python 2 and Python 3 are another pain in
Python. Equally, however, it avoids the pain seen in C and C++ where
backwards compatibility can limit new features and force poor features
to remain valid.)