Many thanks Leonel four your accurate solution and explanation.


El 02/03/17 a las 12:16, Leonel Câmara escribió:
|
forf intable:
ifany(f isother forother infields_list):
printf

|

This also works. Your solution is not bad at all either.

The problem here is that in the DAL a Field is an Expression, and expressions have "==" overloaded to return a Query, a Query is not False. So the in operator calls the list.__contains__ which uses == to check if any of the items of the list is yours, and any item it compares with returns a value which is not False, so your initial solution will always print all the Fields in the Table.

When you use overloaded operators such as we do in the DAL, you get convenience and readability but you must then pay attention to this sort of problems.
--
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] <mailto:[email protected]>. For more options, visit *MailScanner ha detectado un intento de fraude en la siguiente p�gina web "groups.google.com". /No/ conf�e en esta p�gina web:* https://groups.google.com/d/optout <https://groups.google.com/d/optout>.

--
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.

Reply via email to