>>> class RT(object):<br>... def Evaluate(self, code):<br>... eval(code, {'test': self.test})<br>... def test(self):<br>... print 'RT test'<br>...<br>>>> RT().Evaluate('test()')<br>
RT test<br>>>><br><br><br><br><br><div class="gmail_quote">2008/6/27 Michael Foord <<a href="mailto:fuzzyman@voidspace.org.uk">fuzzyman@voidspace.org.uk</a>>:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">Michael Stephens wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I guess I can rebind locals and functions into my own dictionary.. I was just hoping to avoid that with some snazzy python.<br>
<br>
</blockquote></div>
I think exec'ing in a custom context is *more* snazzy Python. :-p<br><font color="#888888">
<br>
Michael<br>
<br>
</font><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d">
Michael Stephens<br>
<br>
Electrical Engineering Graduate Student<br>
University of Wyoming<br>
<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a> <mailto:<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a>> or <a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a> <mailto:<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a>><br>
<br></div><div class="Ih2E3d">
On Fri, Jun 27, 2008 at 10:58 AM, Michael Foord <<a href="mailto:fuzzyman@voidspace.org.uk" target="_blank">fuzzyman@voidspace.org.uk</a> <mailto:<a href="mailto:fuzzyman@voidspace.org.uk" target="_blank">fuzzyman@voidspace.org.uk</a>>> wrote:<br>
<br>
Michael Stephens wrote:<br>
<br></div><div class="Ih2E3d">
Closer.. but self.__dict__ is empty and cannot find test. We<br>
are trying to wire up property expressions in our system. So<br>
control.Enable="GetEnabled()" rather than what we have now<br>
which is control.Enable="currentform.GetEnabled()"<br>
<br>
I thought I could eval the RHS inside the class to get what i<br>
wanted but alas no dice.<br>
<br>
<br>
Well, you could do it in RT.__dict__ - but you would have to make<br>
test a staticmethod.<br>
<br>
Why not maintain an explicit dictionary as a context?<br>
<br>
Michael<br>
<br>
Michael Stephens<br>
<br>
Electrical Engineering Graduate Student<br>
University of Wyoming<br>
<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a> <mailto:<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a>><br></div><div class="Ih2E3d">
<mailto:<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a> <mailto:<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a>>> or<br>
<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a> <mailto:<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a>><br>
<mailto:<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a> <mailto:<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a>>><br>
<br></div><div><div></div><div class="Wj3C7c">
On Fri, Jun 27, 2008 at 10:46 AM, Michael Foord<br>
<<a href="mailto:fuzzyman@voidspace.org.uk" target="_blank">fuzzyman@voidspace.org.uk</a> <mailto:<a href="mailto:fuzzyman@voidspace.org.uk" target="_blank">fuzzyman@voidspace.org.uk</a>><br>
<mailto:<a href="mailto:fuzzyman@voidspace.org.uk" target="_blank">fuzzyman@voidspace.org.uk</a><br>
<mailto:<a href="mailto:fuzzyman@voidspace.org.uk" target="_blank">fuzzyman@voidspace.org.uk</a>>>> wrote:<br>
<br>
Michael Stephens wrote:<br>
<br>
I want to be able to execute arbitrary expressions but have<br>
their context be within my class. The end result is<br>
that RT<br>
test should be printed and not global test<br>
<br>
def test():<br>
print "global test"<br>
<br>
class RT:<br>
def test(_self_):<br>
print 'RT test'<br>
def Evaluate(_self_,code):<br>
eval(code)<br>
<br>
<br>
exec code in self.__dict__<br>
<br>
Might work.<br>
<br>
Michael<br>
<br>
<br>
test()<br>
a.test()<br>
a=RT()<br>
a.Evaluate('test()')<br>
<br>
Michael Stephens<br>
<br>
Electrical Engineering Graduate Student<br>
University of Wyoming<br>
<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a> <mailto:<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a>><br>
<mailto:<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a> <mailto:<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a>>><br>
<mailto:<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a> <mailto:<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a>><br>
<mailto:<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a> <mailto:<a href="mailto:falcon@uwyo.edu" target="_blank">falcon@uwyo.edu</a>>>> or<br>
<br>
<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a> <mailto:<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a>><br>
<mailto:<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a> <mailto:<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a>>><br>
<mailto:<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a> <mailto:<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a>><br>
<mailto:<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a> <mailto:<a href="mailto:89iroc@gmail.com" target="_blank">89iroc@gmail.com</a>>>><br>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br>
<mailto:<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a>><br>
<mailto:<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br>
<mailto:<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a>>><br>
<br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br>
<br>
<br>
-- <a href="http://www.ironpythoninaction.com/" target="_blank">http://www.ironpythoninaction.com/</a><br>
<a href="http://www.voidspace.org.uk/" target="_blank">http://www.voidspace.org.uk/</a><br>
<a href="http://www.trypython.org/" target="_blank">http://www.trypython.org/</a><br>
<a href="http://www.ironpython.info/" target="_blank">http://www.ironpython.info/</a><br>
<a href="http://www.theotherdelia.co.uk/" target="_blank">http://www.theotherdelia.co.uk/</a><br>
<a href="http://www.resolverhacks.net/" target="_blank">http://www.resolverhacks.net/</a><br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br>
<mailto:<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a>><br>
<mailto:<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br></div></div><div><div></div><div class="Wj3C7c">
<mailto:<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a>>><br>
<br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br>
<br>
<br>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a> <mailto:<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a>><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br>
<br>
<br>
<br>
-- <a href="http://www.ironpythoninaction.com/" target="_blank">http://www.ironpythoninaction.com/</a><br>
<a href="http://www.voidspace.org.uk/" target="_blank">http://www.voidspace.org.uk/</a><br>
<a href="http://www.trypython.org/" target="_blank">http://www.trypython.org/</a><br>
<a href="http://www.ironpython.info/" target="_blank">http://www.ironpython.info/</a><br>
<a href="http://www.theotherdelia.co.uk/" target="_blank">http://www.theotherdelia.co.uk/</a><br>
<a href="http://www.resolverhacks.net/" target="_blank">http://www.resolverhacks.net/</a><br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a> <mailto:<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a>><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br>
<br>
<br>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br>
<br>
</div></div></blockquote><div><div></div><div class="Wj3C7c">
<br>
<br>
-- <br>
<a href="http://www.ironpythoninaction.com/" target="_blank">http://www.ironpythoninaction.com/</a><br>
<a href="http://www.voidspace.org.uk/" target="_blank">http://www.voidspace.org.uk/</a><br>
<a href="http://www.trypython.org/" target="_blank">http://www.trypython.org/</a><br>
<a href="http://www.ironpython.info/" target="_blank">http://www.ironpython.info/</a><br>
<a href="http://www.theotherdelia.co.uk/" target="_blank">http://www.theotherdelia.co.uk/</a><br>
<a href="http://www.resolverhacks.net/" target="_blank">http://www.resolverhacks.net/</a><br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br>
</div></div></blockquote></div><br>