addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscontroller-playcredit-cardcrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobe--smallglobegmailgooglegroupshelp-with-circleimageimagesinstagramFill 1languagelaunch-new-window--smalllight-bulblinklocation-pinlockm-swarmSearchmailmessagesminusmobilemoremuplabelShape 3 + Rectangle 1ShapeoutlookpersonJoin Group on CardStartprice-ribbonprintShapeShapeShapeShapeImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruserwarningyahoo

Re: [PhillyPUG] Python hackery, any better ideas?

From: Kevin H.
Sent on: Thursday, January 12, 2012 12:43 PM
On 01/12/[masked]:31 PM, Mat Schaffer wrote:
> Thanks Erik and Thomas, but I think both of those solutions would
> require prepending `vars.` to all the local variable references in the
> code which is a frightening prospect. It's about 250 lines with lots of
> cross referencing of values and oddly placed list comprensions :(
> I updated https://gist.githu...­ to point out
> where that line is (currently 12) that I don't want to touch anything
> below. It's possible that what I have is as good as it gets, but the
> warning on first run (I suspect the compilation process) is concerning.
> -Mat

Instead of calling the functions directly, you could use "exec" and pass 
in a dictionary of variables.

Something like this:

my_vals = locals()

# override the ones you need
my_vals['foo'] = 'bar'

# call the function with exec and pass in variables
exec(my_func(), my_vals)

This would allow you to override whatever you need.

- khill

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy