<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><p abp="212">Hello</p><p abp="213"> </p><p abp="214">I'm having a problem using passing lambda expressions as a parameter in Query filter method.</p><p abp="215">In the following example call to 'findByAge0' works fine, but calling 'findByAge' raises an exception:</p><p abp="216">pony.orm.core.ExprEvalError: age raises NameError: name 'age' is not defined</p><p abp="217"> </p><p abp="218">db = Database('sqlite', ':memory:') </p><p abp="218">class Person(db.Entity):<br>    name = Required(unicode)<br>    age = Required(int)<br>db.generate_mapping(create_tables=True)</p><p abp="218"><br>with db_session:<br>    p1 = Person(name="Bing Bang", age=31)<br>    p2 = Person(name="Kick Mick", age=75)</p><p abp="218"> </p><p abp="218">def findByAge0(age):<br>    fn = lambda p: p.age == age<br>    q = select(p for p in Person)<br>    q = q.filter(fn)<br>    with db_session:<br>        persons = list(q)<br>        for p in persons:<br>            print p.name</p><p abp="218"> </p><p abp="218">def findByAge(age):<br>    fn = lambda p: p.age == age<br>    doFindPersons(fn)</p><p abp="218"> </p><p abp="218">def doFindPersons(fn):<br>    q = select(p for p in Person)<br>    q = q.filter(fn)<br>    with db_session:<br>        persons = list(q)<br>        for p in persons:<br>            print p.name</p><p abp="218"> </p><p abp="218">findByAge0(75)<br>findByAge(75)<br>a = raw_input('[Enter]')<br></p><p abp="218"> </p><p abp="218">Am I doing something wrong or it's not possible to use lambda expression as in this example?</p><p abp="218">Thanks in advance,</p><p abp="218">Tom</p><font color="#ffffff" face="DejaVu Sans Mono" size="1" abp="220"><p abp="219"> </p><font color="#ffffff" face="DejaVu Sans Mono" size="1" abp="222"><p abp="223"> </p><font color="#ffffff" face="DejaVu Sans Mono" size="1" abp="224"><p abp="225"> </p><p abp="226"> </p></font></font></font>                                     </div></body>
</html>