🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #9608

Re: vraagje python

#9608
From: Björn Olievier
Date: Thu, 18 Apr 2002 18:20
53 lines
3007 bytes
Vincent Spruyt <webmaster@flash-design.be> wrote:
> def cheeseshop(kind, *arguments, **keywords):
[knip: code]
 
> wordt aangeroepen door:
> 
> cheeseshop('Limburger', "It's very runny, sir.",
>           "It's really very, VERY runny, sir.",
>           client='John Cleese',
>           shopkeeper='Michael Palin',
>           sketch='Cheese Shop Sketch')
[knip: output]

> Nu staat er nergens uitleg over die **keywords en *arguments. 

**keywords vangt argumenten op die je met een keyword doorgeeft in een
dictionary, bv. client='...'.
*arguments vangt resterende argumenten zonder keywords op in een tuple
(positional arguments).
In dit geval:
  'Limburger' 
    -> kind (dit is een gewoon argument, voorzien in de definitie)
  "It's very runny, sir." & "It's really very, VERY runny, sir." 
    -> *arguments (de resterende positionals (zonder keyword) komen in
    een tuple)  
  client='John Cleese', shopkeeper='Michael Palin', sketch='Cheese Shop
  Sketch'
    -> **keywords (een dictionary met client, shopkeeper en sketch als
    keys)

Er is ook nog varargs om de nog resterende postionele of keyword
argumenten te vangen.

Hopelijk is mijn uitleg een beetje duidelijk, ik heb het kort willen
houden.  Je speelt er best nog wat mee om het goed te snappen.

Nog 1 opmerking.  Verwar de definitie "def func(x=1)" niet met het
aanroepen "f(x=1)".  In het eerste geval krijgt x een default waarde 1,
in het tweede geval roep je een functie aan met keyword argument.

> Wat ik niet begrijp in de def is het volgende
> _____________________________
> def  [knip]
> keys = keywords.keys()
> [knip]
> --------------------------------------
> Is keys hier een variabele, en kan dat evengoed test zijn? Is
> keywords.keys() een functie? Wat doet dat juist?thxgreetz

keys() dient om de keys van een dictionary op te vragen.

-- 
Bj�rn Olievier
Technical Details
Message-ID: <a8Ev8.25479$Ze.5200@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!supernews.com!nntp.cs.ubc.ca!logbridge.uoregon.edu!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <8DBv8.25185$Ze.5091@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: fcea4,bc14dac0ed015b46
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-04-18 11:21:11 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!supernews.com!nntp.cs.ubc.ca!logbridge.uoregon.edu!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
From: Björn Olievier <usenet@pandora.be>
Subject: Re: vraagje  python
Newsgroups: be.comp.programming
References: <8DBv8.25185$Ze.5091@afrodite.telenet-ops.be>
Organization: ...
X-Editor: Vim-600
X-Editor: Vim-600
User-Agent: tin/1.5.11-20020130 ("Toxicity") (UNIX) (Linux/2.4.9-21 (i586))
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit
Lines: 53
Message-ID: <a8Ev8.25479$Ze.5200@afrodite.telenet-ops.be>
Date: Thu, 18 Apr 2002 18:20:54 GMT
NNTP-Posting-Host: 213.224.97.147
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1019154054 213.224.97.147 (Thu, 18 Apr 2002 20:20:54 MET DST)
NNTP-Posting-Date: Thu, 18 Apr 2002 20:20:54 MET DST