Plus you probably don't want to set [] as default argument and then try to
access it like a dictionary; you'll get an exception if you ever call just
foo(), with no argument.

On Tue, Apr 8, 2008 at 12:57 AM, Jason Scheirer <[EMAIL PROTECTED]>
wrote:

> On Apr 7, 8:54 pm, BonusOnus <[EMAIL PROTECTED]> wrote:
> > How do I pass a dictionary to a function as an argument?
> >
> > # Say I have a function foo...
> > def foo (arg=[]):
> > x = arg['name']
> > y = arg['len']
> >
> > s = len (x)
> >
> > t = s + y
> >
> > return (s, t)
> >
> > # The dictionary:
> >
> > dict = {}
> > dict['name'] = 'Joe Shmoe'
> > dict['len'] = 44
> >
> > # I try to pass the dictionary as an argument to a
> > # function
> >
> > len, string = foo (dict)
> >
> > # This bombs with 'TypeError: unpack non-sequence'
> >
> > What am I doing wrong with the dictionary?
>
> You want to
> return s, t
> NOT return (s, t) -- this implicitly only returns ONE item
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to