> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Jacob S.
> Sent: Friday, December 17, 2004 3:54 PM
> To: Kent Johnson
> Cc: [EMAIL PROTECTED]
> Subject: Re: [Tutor] "TypeError: 'int' object is not callable"??
> 
> Hey, could you give an example?
> Thanks,
> Jacob
> 
> >
> > apply() is deprecated; it has been replaced by 'extended 
> call syntax'.
> Instead of
> >    apply(fn, args, kwds)
> > you can now write
> >    fn(*args, **kwds)
> >
> > Kent

Here is a quick example I came up with:

>>> def spam(*args, **kwargs):
...     print "Here are the args you supplied:"
...     for item in args:
...             print item
...     print
...     print "Here are the kwargs you supplied:"
...     for key,value in kwargs.items():
...             print key, '=', value
...             
>>> spam(1,'a','eggs',s=0, p=1, a=2, m=3)
Here are the args you supplied:
1
a
eggs

Here are the kwargs you supplied:
a = 2
p = 1
s = 0
m = 3

In the case of the spam() function, 1, 'a', and 'eggs' are all put into
the sequence args (not sure if it is a list or tuple).  The key/value
pairs are bundled into the dictionary kwargs.  The arguments have to be
given in the right order though:

>>> spam(t=1, b=1, 'this', 'will', 'fail')
Traceback (SyntaxError: non-keyword arg after keyword arg

HTH!

Christian
http://www.dowski.com


_______________________________________________
Tutor maillist  -  [EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to