🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #28343

Re: Prośba o wytknięcie błędów

#28343
From: Stachu 'Dozzie' K.
Date: Tue, 15 Nov 2011 14:29
48 lines
2683 bytes
On 2011-11-15, hubert depesz lubaczewski <depesz@depesz.com> wrote:
>> def calculate_hash( filename ):
>> 	mail=email.message_from_file(open(filename))
>> 	[mail.__delitem__(h) for h in mail.keys() if h.lower not in keep_headers]
>> 	return sha256( mail.as_string() ).hexdigest()
[...]
> co do mail.__delitem__ w []
>
> z tym [] ( to się chyba nazywa list comprehension? )
> mam problem koncepcyjny.
> tzn. jak pisałem w perlu, to tam mamy podobny mechanizm, nazywa się map.
> i podobnie jak ten trick z [] zwraca arraya/listę.

Tutaj to nadużycie, podobnie jak w Perlu taki kod:
#v+
@a = (1, 2, 3, 4);
map { $_ *= 2 } @a;
#v-

> we wszystkich materiałach o stylu programowania piszą by nie używać map
> ignorując rezultat (czyli np. nie przypisując go gdzieś, traktując go po
> prostu jako jednoliniową pętlę).
> i to mi się mocno wtłoczyło w mózg.
> tak więc teraz patrząc na 
> [ ... for ... if ... ]
> mam odruch odrzutny, bo to jest właśnie ignorowanie rezultatu.
> może powinienem się przełamać.

Moim zdaniem nie. Po to jest pętla for w Pythonie, żeby z niej
korzystać.

> dodatkowe pytanie - czy korzystanie bezpośrednio z __funkcji__ jest ok?
> z tego co zrozumiałem, to są wewnętrznie używane funkcje które służą do
> implementacji operatorów.

Jest OK, jeśli przesłaniasz albo implementujesz operator. Tutaj uważam
je za bezpodstawne.

> dostęp do nich jest, ale wydawało mi się, że
> używanie ich bezpośrednio jest jakieś "niekoszerne". myliłem się?

Widzisz, w Pythonie, wbrew temu co większość fanbojów mówi, można pisać
gówniany kod (tylko jest nieco trudniej). Widziałem nawet kiedyś zepsute
wcięcia w skrypcie pythonowym, który działał (sic!).

-- 
Secunia non olet.
Stanislaw Klekot
Technical Details
Message-ID: <slrnjc4tie.3r8.dozzie@jarowit.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news-transit.tcx.org.uk!news.stack.nl!aioe.org!.POSTED!not-for-mail
References: <2h09p8-kgk.ln1@depesz.com> <j9ta7o$7ae$2@polsl.pl> <it8ap8-uiv.ln1@depesz.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news-transit.tcx.org.uk!news.stack.nl!aioe.org!.POSTED!not-for-mail
From: "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid>
Newsgroups: pl.comp.lang.python
Subject: Re: Prośba o
 wytknięcie błędów
Date: Tue, 15 Nov 2011 14:29:31 +0000 (UTC)
Organization: Aioe.org NNTP Server
Lines: 48
Message-ID: <slrnjc4tie.3r8.dozzie@jarowit.net>
References: <2h09p8-kgk.ln1@depesz.com> <j9ta7o$7ae$2@polsl.pl> <it8ap8-uiv.ln1@depesz.com>
NNTP-Posting-Host: 32kR2H3mw0v3HL1sSnS9/A.user.speranza.aioe.org
Mime-Version: 1.0
X-Complaints-To: abuse@aioe.org
User-Agent: slrn/pre0.9.9-111 (Linux)
X-Notice: Filtered by postfilter v. 0.8.2
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit