2018-03-06 13:31 GMT+01:00 Vláďa Macek <ma...@sandbox.cz>:

> > nesmyslnou hodnotu '3' * 2 == '33'
>
> Ani v nejmenším to není nesmyslné, je to standardní definované chování.
> Programátor má skutečně vědět, jakého typu jsou a tedy jaké schopnosti mají
> objekty, se kterými pracuje. Jak by jinak mohl programovat? To je přece
> naprostý základ.
>

Jo, ale je rozdíl, když víš že zrovna pracuješ se stringem a číslem a
očekáváš tohle chování. A nebo když si zapoměl ošetřit vstup, převést
string na int, a ačkoliv si myslíš, že pracuješ s čísly a očekáváš že
výsledkem operace bude číslo, tak tomu tak není. Argument pro statické typy
nebo typové anotace je ten, že tě to upozorní na ten neošetřený vstup, či
špatný typ na výstupu, už při psaní kódu.

Ale jak už jsem psal, bez testů je to stejně jedno. Záleží na hodnotách
proměnných. Třeba při pokusu o dělení nulou je houby platné, že nula je
integer a prošlo to statickou typovou kontrolou.

Honza



> Obecnější dotazy:
>
> S verzí 3.5 tedy přibyl type hinting. Používají to IDE apod. pro statické
> kontroly kódu, doc generátory(?). Vy, co sledujete nové dění víc:
>
> 1) Jaký je kromě PyCharmu další rozšířenější software, který to prakticky
> strojově používá a jak? Klidně víc.
>
> 2) Je nějaká praxe warningů samotného interpretu?
>
> 3) Začíná se uvažovat o vynucování striktního typování, tj. že s hintů by
> se staly asserty?
>
> Neptám se, jestli by to bylo dobře, ani netvrdím, že na to čekám (nečekám).
>
> Díky,
>
> Vláďa
>
>
> On 6.3.2018 13:14, Jan Bednařík wrote:
> > Ještě jsem zapoměl dodat, že ten string z pythonu obsahuje navíc
> > nesmyslnou hodnotu '3' * 2 == '33'. Tak to člověka trkne podle hodnoty (v
> > testech), i kdyby si náhodou nevšiml, že je to string. V JS je: '3' * 2
> > == 6 tak je ta chyba hrozně nenápadná.
> >
> > 2018-03-06 13:10 GMT+01:00 Jan Bednařík <jan.bedna...@gmail.com
> > <mailto:jan.bedna...@gmail.com>>:
> >
> >
> >
> >     2018-03-06 11:53 GMT+01:00 Pavel Schön <pa...@schon.cz
> >     <mailto:pa...@schon.cz>>:
> >
> >             Python tohle řeší elegantně silnou typovou kontrolou. Pádem
> >             programu tě upozorní, že se pokoušíš o nějakou hloupost, jako
> >             třeba vynásobit sting a int. A obvykle ti k tomu dá pěknou
> >             chybovou hlášku.
> >
> >
> >         Tak zrovna toto je spatny priklad, protoze nasobeni string a int
> >         je podporovana operace
> >         >>> 'x'*0
> >         ''
> >
> >
> >     Jo, měl jsem tam dát součet, to by byl lepší příklad.
> >
> >     Nicméně i když se dá v pythonu udělat '3' * 2, tak z toho vyleze
> >     string a ne integer, tak to obvykle padne někde kousek dál. Problém
> >     třeba toho JavaScriptu je ten, že z '3' * 2 vyleze integer, a všechno
> >     se jeví v pořádku.
> >
>
>
> --
> --
> E-mailová skupina django-cs@googlegroups.com
> Správa: http://groups.google.cz/group/django-cs
> ---
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
> django-cs ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
> zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com.
> Chcete-li zobrazit tuto diskusi na webu, navštivte
> https://groups.google.com/d/msgid/django-cs/6f9034c8-9c5a-
> 7d37-2a6a-28ac33d6cae7%40sandbox.cz.
> Další možnosti najdete na adrese https://groups.google.com/d/optout.
>

-- 
-- 
E-mailová skupina django-cs@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
--- 
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs 
ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete 
e-mail na adresu django-cs+unsubscr...@googlegroups.com.
Chcete-li zobrazit tuto diskusi na webu, navštivte 
https://groups.google.com/d/msgid/django-cs/CAMmgUkNPo9Vv3WkKmr4_G6W9y9RXN9bH-rmA21jeeRUbCj1F2A%40mail.gmail.com.
Další možnosti najdete na adrese https://groups.google.com/d/optout.

Reply via email to