eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPython i argumenty funkcji › Re: Python i argumenty funkcji
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erj
    e.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.usen
    etexpress.com!81.171.65.14.MISMATCH!peer02.ams4!peer.am4.highwinds-media.com!ne
    ws.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-s
    po-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>
    <3...@g...com>
    From: Roman Tyczka <r...@h...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: <3...@g...com>
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Language: pl-PL
    Content-Transfer-Encoding: 8bit
    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: a...@n...neostrada.pl
    X-Received-Bytes: 2404
    Xref: news-archive.icm.edu.pl pl.comp.programming:215374
    [ ukryj nagłówki ]

    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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: