SELECT is not expected to behave like your printem() function, which merely
takes a list. SELECT can either take a list, or it can take a set of
positional arguments. In your case, however, you have passed it one
positional argument followed by a second positional argument that happens
to be a list. It is not designed to take inputs this way. Either give it a
single list (and no additional positional arguments):
myselect = SELECT([OPTION('Choose')] + map(make_option, rows))
or give it only individual positional arguments (using * to expand your
list into positional arguments):
myselect = SELECT(OPTION('Choose'), *map(make_option, rows))
Anthony
On Wednesday, September 10, 2014 10:10:47 AM UTC-4, Cliff Kachinske wrote:
>
> Python does as below. SELECT does otherwise. I was curious as to why.
>
>
> In [1]: foo = ['bar', 'baz', 'bazzle']
>
>
> In [2]: def func(str):
> ...: return 'fu{}'.format(str)
> ...:
>
>
> In [3]: map (func, foo)
> Out[3]: ['fubar', 'fubaz', 'fubazzle']
>
>
> In [4]: def printem(lis):
> ...: for l in lis:
> ...: print l
> ...:
>
>
> In [5]: printem(map(func, foo))
> fubar
> fubaz
> fubazzle
>
>
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.