[IronPython] Evaluating python from within the context of a class

Michael Foord fuzzyman at voidspace.org.uk
Fri Jun 27 10:02:33 PDT 2008


Michael Stephens wrote:
> I guess I can rebind locals and functions into my own dictionary.. I 
> was just hoping to avoid that with some snazzy python.
>
I think exec'ing in a custom context is *more* snazzy Python. :-p

Michael

> Michael Stephens
>
> Electrical Engineering Graduate Student
> University of Wyoming
> falcon at uwyo.edu <mailto:falcon at uwyo.edu> or 89iroc at gmail.com 
> <mailto:89iroc at gmail.com>
>
> On Fri, Jun 27, 2008 at 10:58 AM, Michael Foord 
> <fuzzyman at voidspace.org.uk <mailto:fuzzyman at voidspace.org.uk>> wrote:
>
>     Michael Stephens wrote:
>
>         Closer.. but self.__dict__ is empty and cannot find test.  We
>         are trying to wire up property expressions in our system.   So
>         control.Enable="GetEnabled()" rather than what we have now
>         which is control.Enable="currentform.GetEnabled()"
>
>         I thought I could eval the RHS inside the class to get what i
>         wanted but alas no dice.
>
>
>     Well, you could do it in RT.__dict__ - but you would have to make
>     test a staticmethod.
>
>     Why not maintain an explicit dictionary as a context?
>
>     Michael
>
>         Michael Stephens
>
>         Electrical Engineering Graduate Student
>         University of Wyoming
>         falcon at uwyo.edu <mailto:falcon at uwyo.edu>
>         <mailto:falcon at uwyo.edu <mailto:falcon at uwyo.edu>> or
>         89iroc at gmail.com <mailto:89iroc at gmail.com>
>         <mailto:89iroc at gmail.com <mailto:89iroc at gmail.com>>
>
>         On Fri, Jun 27, 2008 at 10:46 AM, Michael Foord
>         <fuzzyman at voidspace.org.uk <mailto:fuzzyman at voidspace.org.uk>
>         <mailto:fuzzyman at voidspace.org.uk
>         <mailto:fuzzyman at voidspace.org.uk>>> wrote:
>
>            Michael Stephens wrote:
>
>                I want to be able to execute arbitrary expressions but have
>                their context be within my class.  The end result is
>         that RT
>                test should be printed and not global test
>
>                def test():
>                 print "global test"
>
>                class RT:
>                 def test(_self_):
>                 print 'RT test'
>                 def Evaluate(_self_,code):
>                 eval(code)
>
>
>            exec code in self.__dict__
>
>            Might work.
>
>            Michael
>
>
>                test()
>                a.test()
>                a=RT()
>                a.Evaluate('test()')
>
>                Michael Stephens
>
>                Electrical Engineering Graduate Student
>                University of Wyoming
>                falcon at uwyo.edu <mailto:falcon at uwyo.edu>
>         <mailto:falcon at uwyo.edu <mailto:falcon at uwyo.edu>>
>                <mailto:falcon at uwyo.edu <mailto:falcon at uwyo.edu>
>         <mailto:falcon at uwyo.edu <mailto:falcon at uwyo.edu>>> or
>
>                89iroc at gmail.com <mailto:89iroc at gmail.com>
>         <mailto:89iroc at gmail.com <mailto:89iroc at gmail.com>>
>                <mailto:89iroc at gmail.com <mailto:89iroc at gmail.com>
>         <mailto:89iroc at gmail.com <mailto:89iroc at gmail.com>>>
>              
>          ------------------------------------------------------------------------
>
>                _______________________________________________
>                Users mailing list
>                Users at lists.ironpython.com
>         <mailto:Users at lists.ironpython.com>
>         <mailto:Users at lists.ironpython.com
>         <mailto:Users at lists.ironpython.com>>
>
>              
>          http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>                
>
>
>            --    http://www.ironpythoninaction.com/
>            http://www.voidspace.org.uk/
>            http://www.trypython.org/
>            http://www.ironpython.info/
>            http://www.theotherdelia.co.uk/
>            http://www.resolverhacks.net/
>
>            _______________________________________________
>            Users mailing list
>            Users at lists.ironpython.com
>         <mailto:Users at lists.ironpython.com>
>         <mailto:Users at lists.ironpython.com
>         <mailto:Users at lists.ironpython.com>>
>
>            http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>         ------------------------------------------------------------------------
>
>         _______________________________________________
>         Users mailing list
>         Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
>         http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>          
>
>
>
>     -- 
>     http://www.ironpythoninaction.com/
>     http://www.voidspace.org.uk/
>     http://www.trypython.org/
>     http://www.ironpython.info/
>     http://www.theotherdelia.co.uk/
>     http://www.resolverhacks.net/
>
>     _______________________________________________
>     Users mailing list
>     Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
>     http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>   


-- 
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/
http://www.trypython.org/
http://www.ironpython.info/
http://www.theotherdelia.co.uk/
http://www.resolverhacks.net/



More information about the Users mailing list