🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217404

Re: Python i argumenty funkcji

#217404
From: Roman Tyczka
Date: Wed, 17 Feb 2021 13:50
51 lines
2720 bytes
W dniu 17.02.2021 o 12:40, Maciek Godek pisze:
>> I teraz dlaczego w wywołaniu metody __init__ parametry są przekazane w
>> formie jak w definicji czyli *args, **kwargs? W przykładach jakie
>> widziałem, a także w wywołaniu _getParameter() są już podane zwyczajnie,
>> czyli: args, kwargs.
>> Skąd w tym pierwszym wywołaniu i dlaczego są użyte gwiazdki (czyli w
>> formie takiej jak w definicji metody/funkcji)?
> 
> Ściśle rzecz biorąc, dlatego, że projektant funkcji _getParameter() tak sobie postanowił.
> 
> Argumenty w Pythonie są pomyślane w taki sposób, że jak masz tę gwiazdkę, to ona przechwyci do listy dowolnie wiele argumentów. Na przykład:
> 
> def list(*x):
>     return x
> 
> sprawi, że jak wywołamy
> 
> list(1,2,3)
> 
> to w wyniku dostaniemy listę
> 
> (1,2,3)
> 
> Tak to wygląda w kontekście definicji. Natomiast w kontekście użycia rola gwiazdki jest analogiczna, Załóżmy, że mamy taką funkcję:
> 
> def f(x, y, z):
>      return [x, y, z]
> 
> i do tego mamy listę L=(1,2,3)
> 
> Moglibyśmy sobie wywołać funkcję f w taki sposób:
> 
> f(L[0], L[1], L[2])
> 
> ale jeśli zamiast tego napiszemy
> 
> f(*L)
> 
> to efekt będzie taki sam. 
A czy nie możemy po prostu zawołać:

f(L)

?

ps. skąd się wzięła powszechnie używana nazwa kwargs? kv to bym jeszcze 
jako key-value rozszyfrował, ale kw?

-- 
pzdr
Roman
Technical Details
Message-ID: <602d1f3e$0$537$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!168.119.53.7.MISMATCH!weretis.net!feeder8.news.weretis.net!news.uzoreto.com!feeder.usenetexpress.com!tr3.eu1.usenetexpress.com!81.171.65.14.MISMATCH!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <602ce57f$0$523$65785112@news.neostrada.pl> <3044c97a-cd3b-4607-a630-5bfbc45d0e25n@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!168.119.53.7.MISMATCH!weretis.net!feeder8.news.weretis.net!news.uzoreto.com!feeder.usenetexpress.com!tr3.eu1.usenetexpress.com!81.171.65.14.MISMATCH!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: Python i argumenty funkcji
Newsgroups: pl.comp.programming
References: <602ce57f$0$523$65785112@news.neostrada.pl> <3044c97a-cd3b-4607-a630-5bfbc45d0e25n@googlegroups.com>
From: Roman Tyczka <romantyczka@hate.you.spammer>
Date: Wed, 17 Feb 2021 14:50:53 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <3044c97a-cd3b-4607-a630-5bfbc45d0e25n@googlegroups.com>
Lines: 51
Message-ID: <602d1f3e$0$537$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 194.49.104.179
X-Trace: 1613569854 unt-rea-a-02.news.neostrada.pl 537 194.49.104.179:33038
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Bytes: 2404
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit