Jonathan Slenders wrote:
The following works. But I've no idea how to pass params to the member
function. (Anyone: How can you call a function with parameters
unpacked from a tuple??)
def g(*p, *args, **kwargs):
f(self, *args, **kwargs)
Michael
But why do you actually want to do this? If the class instance is not
important, just make a static method of this one.
class RT(object):
def Evaluate(self, code):
def generateContext():
def dropself(f):
def g(*p):
f(self)
return g
context = {}
for f in RT.__dict__:
context[f] = dropself(RT.__dict__[f])
return context
eval(code, generateContext())
def test(self):
print 'RT test'
RT().Evaluate('test()')
2008/6/27 Michael Stephens <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>:
Is there anyway cool way you know of to generate the context at
runtime
def Evaluate(_self_,code)
exec code in GenerateContext(a)
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 11:02 AM, Michael Foord
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
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]>
<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:58 AM, Michael Foord
<[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[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]>>
<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]>>>
On Fri, Jun 27, 2008 at 10:46 AM, Michael Foord
<[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
<mailto:[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]>>>
<mailto:[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]>>>
<mailto:[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]>>
<mailto:[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]>>
<mailto:[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]>
<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] <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