Article View: pl.comp.programming
Article #217404Re: Python i argumenty funkcji
From: Roman Tyczka
Date: Wed, 17 Feb 2021 13:50
Date: Wed, 17 Feb 2021 13:50
51 lines
2720 bytes
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-mailReferences:
<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