[Tutor] my problem with **

Mico Siahaan mico@intermatik.co.id
Tue Apr 29 05:12:02 2003


--------------Boundary-00=_NGL3IA11VA4000000000
Content-Type: Multipart/Alternative;
  boundary="------------Boundary-00=_NGL3DL51VA4000000000"


--------------Boundary-00=_NGL3DL51VA4000000000
Content-Type: Text/Plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

* means "matches remaining positional arguments (in a tuple) =0D
** means "matches remaining keywords arguments (in a dictionary) =0D
=0D
if define function: =0D
def foo(*bar, **kwargs): =0D
print "positional arguments:" =0D
for arg in bar: =0D
print arg =0D
print "keyword arguments (kwargs):" =0D
for kwarg in kwargs.keys(): =0D
print kwarg + ":" + kwargs[kwarg] =0D
=0D
then you can call it by foo('spam','eggs','toast',kwarg1=3D'scam',kwarg2=3D=
'slam=0D
). You will get result: =0D
positional arguments: =0D
spam =0D
eggs =0D
toast =0D
keyword arguments (kwargs): =0D
kwarg2:slam =0D
kwarg1:scam =0D
=0D
-mico- =0D
=0D
-------Original Message------- =0D
=0D
From: ali mangaliag =0D
Date: Tuesday, April 29, 2003 3:11:35 PM =0D
To: Tutor@python.org =0D
Subject: [Tutor] my problem with ** =0D
=0D
what does the ** and * mean in a function parameter?? =0D
=0D
ex... =0D
=0D
def foo(*bar, **kwargs): =0D
=2E=20
--------------Boundary-00=_NGL3DL51VA4000000000
Content-Type: Text/HTML;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML><HEAD>
<META content=3D"IncrediMail 1.0" name=3DGENERATOR>

<!--IncrdiXMLRemarkStart>
<IncrdiX-Info>
<X-FID>FLAVOR00-NONE-0000-0000-000000000000</X-FID>
<X-FVER></X-FVER>
<X-CNT>;</X-CNT>
</IncrdiX-Info>
<IncrdiXMLRemarkEnd-->
</HEAD>
<BODY style=3D"BACKGROUND-POSITION: 0px 0px; FONT-SIZE: 12pt; MARGIN: 5px=
 10px 10px; FONT-FAMILY: Arial" bgColor=3D#ffffff background=3D"" scroll=3D=
yes X-FVER=3D"3.0" ORGYPOS=3D"0">
<TABLE id=3DINCREDIMAINTABLE cellSpacing=3D0 cellPadding=3D2 width=3D"100=
%" border=3D0>
<TBODY>
<TR>
<TD id=3DINCREDITEXTREGION style=3D"FONT-SIZE: 12pt; CURSOR: auto; FONT-F=
AMILY: Arial" width=3D"100%">* means "matches remaining positional argume=
nts (in a tuple) <BR>** means "matches remaining keywords arguments (in a=
 dictionary) <BR><BR>if define function: <BR>def foo(*bar, **kwargs): <BR=
>print "positional arguments:" <BR>for arg in bar: <BR>print arg <BR>prin=
t "keyword arguments (kwargs):" <BR>for kwarg in kwargs.keys(): <BR>print=
 kwarg + ":" + kwargs[kwarg] <BR><BR>then you can call it by foo('spam','=
eggs','toast',kwarg1=3D'scam',kwarg2=3D'slam<BR>). You will get result: <=
BR>positional arguments: <BR>spam <BR>eggs <BR>toast <BR>keyword argument=
s (kwargs): <BR>kwarg2:slam <BR>kwarg1:scam <BR><BR>-mico- <BR><BR>------=
-Original Message------- <BR><BR>From: ali mangaliag <BR>Date: Tuesday, A=
pril 29, 2003 3:11:35 PM <BR>To: <A href=3D"mailto:Tutor@python.org">Tuto=
r@python.org</A> <BR>Subject: [Tutor] my problem with ** <BR><BR>what doe=
s the ** and * mean in a function parameter?? <BR><BR>ex... <BR><BR>def f=
oo(*bar, **kwargs): <BR>. <BR></TD></TR>
<TR>
<TD id=3DINCREDIFOOTER width=3D"100%">
<TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%">
<TBODY>
<TR>
<TD width=3D"100%"></TD>
<TD id=3DINCREDISOUND vAlign=3Dbottom align=3Dmiddle></TD>
<TD id=3DINCREDIANIM vAlign=3Dbottom align=3Dmiddle></TD></TR></TBODY></T=
ABLE></TD></TR></TBODY></TABLE><FONT face=3D"Arial, Helvetica, sans-serif=
" size=3D2></FONT><SPAN id=3DIncrediStamp><SPAN dir=3Dltr><FONT face=3D"A=
rial, Helvetica, sans-serif" size=3D2>___________________________________=
_________________<BR><FONT face=3D"Comic Sans MS" size=3D2><A href=3D"htt=
p://www.incredimail.com/redir.asp?ad_id=3D309&amp;lang=3D9"><IMG alt=3D""=
 hspace=3D0 src=3D"cid:4505EDD3-C6FE-4691-90F6-6E3D4CEF526F" align=3Dbase=
line border=3D0></A>&nbsp; <I>IncrediMail</I> - <B>Email has finally evol=
ved</B> - </FONT><A href=3D"http://www.incredimail.com/redir.asp?ad_id=3D=
309&amp;lang=3D9"><FONT face=3D"Times New Roman" size=3D3><B><U>Click Her=
e</U></B></FONT></A></SPAN></SPAN></FONT></BODY></HTML>
--------------Boundary-00=_NGL3DL51VA4000000000--

--------------Boundary-00=_NGL3IA11VA4000000000
Content-Type: image/gif;
  name="IMSTP.gif"
Content-Transfer-Encoding: base64
Content-ID: <4505EDD3-C6FE-4691-90F6-6E3D4CEF526F>

R0lGODlhFAAPALMIAP9gAM9gAM8vAM9gL/+QL5AvAGAvAP9gL////wAAAAAAAAAAAAAAAAAAAAAA
AAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJFAAIACwAAAAAFAAPAAAEVRDJSaudJuudrxlEKI6B
URlCUYyjKpgYAKSgOBSCDEuGDKgrAtC3Q/R+hkPJEDgYCjpKr5A8WK9OaPFZwHoPqm3366VKyeRt
E30tVVRscMHDqV/u+AgAIfkEBWQACAAsAAAAABQADwAABBIQyUmrvTjrzbv/YCiOZGmeaAQAIfkE
CRQACAAsAgABABAADQAABEoQIUOrpXIOwrsPxiQUheeRAgUA49YNhbCqK1kS9grQhXGAhsDBUJgZ
AL2Dcqkk7ogFpvRAokSn0p4PO6UIuUsQggSmFjKXdAgRAQAh+QQFCgAIACwAAAAAFAAPAAAEEhDJ
Sau9OOvNu/9gKI5kaZ5oBAAh+QQJFAAIACwCAAEAEAANAAAEShAhQ6ulcg7Cuw/GJBSF55ECBQDj
1g2FsKorWRL2CtCFcYCGwMFQmBkAvYNyqSTuiAWm9ECiRKfSng87pQi5SxCCBKYWMpd0CBEBACH5
BAVkAAgALAAAAAAUAA8AAAQSEMlJq7046827/2AojmRpnmgEADs=

--------------Boundary-00=_NGL3IA11VA4000000000--