Yes, you can have multiple return statements in different logic branches of a function.
Anthony On Friday, February 15, 2013 11:44:02 AM UTC-5, 黄祥 wrote: > > thank you so much for your detail explaination about the differnce logic, > anthony. > according to your explaination about return so that i've modified into : > > *#controllers/default.py* > def order_callback(): > id=int(request.vars.id) > if request.vars.action=='add': > session.order[id]=session.order.get(id, 0)+1 > if request.vars.action=='subtract': > session.order[id]=max(0,session.order.get(id, 0)-1) > * if request.vars.action=='remove':* > * del session.order[id]* > * return locals()* > return str(session.order[id]) > > is the logic above is correct? i mean there is two return types in 1 > definition, is it allowed? i've already tested it, it can work same like > using redirect, if it not correct or not allowed, should i create into the > different definition like : > > *#controllers/default.py* > def order_callback(): > id=int(request.vars.id) > if request.vars.action=='add': > session.order[id]=session.order.get(id, 0)+1 > if request.vars.action=='subtract': > session.order[id]=max(0,session.order.get(id, 0)-1) > * if request.vars.action=='remove':* > * del session.order[id]* > * redirect(URL('product'))* > return str(session.order[id]) > > def order_remove(): > id=int(request.vars.id) > del session.order[id] > return locals() > > *#**views/default/order.html* > <table width="100%"> > {{for id, qty in order.items():}} > {{p=db.product(id)}} > <tr> > <td>{{=p.product_name}}</td> > <td>Rp. {{=p.unit_price}}</td> > <td><span id="{{='item%s'%p.id}}">{{=qty}}</span> > {{=SPAN(A('+', callback=URL('order_callback', vars=dict(id=p.id, > action='add')), target='item%s'%p.id, _title='Add Product', _class='btn > btn-navbar'))}} {{=SPAN(A('-', callback=URL('order_callback', vars=dict(id= > p.id, action='subtract')), target='item%s'%p.id, _title='Substract > Product', _class='btn btn-navbar'))}} *{{=SPAN(A('X', > callback=URL('order_remove', vars=dict(id=p.id)), delete='tr', > _title='Remove Product', _class='btn btn-navbar'))}}*</td> > </tr> > {{pass}} > </table> > > both are work, i've already test it. > > thank you > -- --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.