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.)