Article View: pl.comp.lang.python
Article #27970Re: Konstruktor funkcji
From: Adam Byrtek
Date: Sat, 26 Mar 2011 13:56
Date: Sat, 26 Mar 2011 13:56
32 lines
1811 bytes
1811 bytes
On 03/26/2011 11:30 AM, Wojciech Muła wrote:
>>> Czy w pythonie da się tworzyć funkcje w locie tak jak w JavaScript?
>>> Np. zmienna = function(arg) {cośtam, cośtam;}
>>
>> lambda? np:
>>
>> In [1]: foo = lambda arg1, arg2: arg1 * arg2
>>
>> In [2]: foo(5, 2)
>> Out[2]: 7
>
> Lambda pozwala uzywac tylko wyrazen. Ale mozna definiowac
> funkcje (i klasy) w dowolnym miejscu kodu.
Czyli innymi słowy zamiast wspomnianego
zmienna = function(arg) {cośtam, cośtam;}
piszemy
def zmienna(arg):
cośtam, cośtam
co jest równoważne przypisaniu zmiennej 'zmienna' obiektu
reprezentującego funkcję.
Niestety nie istnieje składnia dla "wieloliniowych lambd" (jak bloki w
Ruby). Sam Guido przyznaje, że to spory problem, a żadne z
zaproponowanych dotychczas rozwiązań nie jest dostatecznie czytelne.
Pozdrawiam,
Adam
Technical Details
Message-ID:
<imkrag$jtu$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<20110326103254.cdd3b35e.szatkus@gmail.com> <20110326105858.ebb84426.gryf_esm-no@spam-o2.pl> <slrniorg1g.ral.wojciech_mula@cat.tac>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: Adam Byrtek <adambyrtek@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: Konstruktor funkcji Date: Sat, 26 Mar 2011 14:56:31 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 32 Message-ID: <imkrag$jtu$1@inews.gazeta.pl> References: <20110326103254.cdd3b35e.szatkus@gmail.com> <20110326105858.ebb84426.gryf_esm-no@spam-o2.pl> <slrniorg1g.ral.wojciech_mula@cat.tac> NNTP-Posting-Host: rs.ists.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1301147792 20414 87.239.216.2 (26 Mar 2011 13:56:32 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Sat, 26 Mar 2011 13:56:32 +0000 (UTC) X-User: alpha123 In-Reply-To: <slrniorg1g.ral.wojciech_mula@cat.tac> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit