>>> class RT(object):
... def Evaluate(self, code):
... eval(code, {'test': self.test})
... def test(self):
... print 'RT test'
...
>>> RT().Evaluate('test()')
RT test
>>>
2008/6/27 Michael Foord <[EMAIL PROTECTED]>:
> 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
>> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> or [EMAIL PROTECTED] <mailto:
>> [EMAIL PROTECTED]>
>>
>> On Fri, Jun 27, 2008 at 10:58 AM, Michael Foord <
>> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> 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
>> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> or
>> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>>
>> On Fri, Jun 27, 2008 at 10:46 AM, Michael Foord
>> <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>> <mailto:[EMAIL PROTECTED]
>> <mailto:[EMAIL PROTECTED]>>> 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
>> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> or
>>
>> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> [email protected]
>> <mailto:[email protected]>
>> <mailto:[email protected]
>> <mailto:[email protected]>>
>>
>>
>> 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
>> [email protected]
>> <mailto:[email protected]>
>> <mailto:[email protected]
>> <mailto:[email protected]>>
>>
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> [email protected] <mailto:[email protected]>
>> 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
>> [email protected] <mailto:[email protected]>
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> [email protected]
>> 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
> [email protected]
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com