🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217402

Python i argumenty funkcji

#217402
From: Roman Tyczka
Date: Wed, 17 Feb 2021 09:44
40 lines
2408 bytes
Uczę się Pythona, trochę już ogarniam, ale trafiłem na niejasny dla mnie 
przypadek. Wiem mniej więcej o co chodzi z parametrami w funkcjach typu 
pozycyjnego i nazwanego (tuple i dictionary), ale nie rozumiem w 
poniższym kodzie czegoś.

Jest oto klasa DESCipher:


class DESCipher(blockalgo.BlockAlgo):
     """DES cipher object"""

     def __init__(self, key, *args, **kwargs):
         """Initialize a DES cipher object

         See also `new()` at the module level."""
         blockalgo.BlockAlgo.__init__(self, _DES, key, *args, **kwargs)
[...]

W ostatniej linii woła ona metodę __init__() klasy BlockAlgo:

class BlockAlgo:
     """Class modelling an abstract block cipher."""

     def __init__(self, factory, key, *args, **kwargs):
         self.mode = _getParameter('mode', 0, args, kwargs, 
default=MODE_ECB)
   [...]

Ta klasa z kolei woła metodę _getParameter().
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)?

-- 
pzdr
Roman
Technical Details
Message-ID: <602ce57f$0$523$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Newsgroups: pl.comp.programming
X-Mozilla-News-Host: news://news.nask.pl:119
From: Roman Tyczka <romantyczka@hate.you.spammer>
Subject: Python i argumenty funkcji
Date: Wed, 17 Feb 2021 10:44:31 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1
MIME-Version: 1.0
Lines: 40
Message-ID: <602ce57f$0$523$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 194.49.104.179
X-Trace: 1613555071 unt-rea-b-01.news.neostrada.pl 523 194.49.104.179:59156
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Bytes: 2223
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit