Question: Dynamic code import
Károly Ladvánszky
aa at bb.cc
Thu Oct 25 16:24:12 EDT 2001
Hi Bjorn,
Thanks for your quick answer. Yes, I was mistaken with the global directive.
It's clear now.
Regarding the first question, it works fine with the interpreter but I would
like to read
f11(a) from somewhere else, most likely from a file.
Cheers,
Károly
"Bjorn Pettersen" <BPettersen at NAREX.com> az alábbiakat írta a következo
üzenetben: news:mailman.1004039306.14596.python-list at python.org...
> From: Károly Ladvánszky [mailto:aa at bb.cc]
>
> Hi,
Hi
> I've been experimenting with Python for a short period of
> time and I really enjoy it. It allows me to do a lot of
> things that are much harder or even not possible to
> accomplish in other languages. I'd like to receive comments
> on the following problems.
Welcome
> 1. Is it possible to 'import' Python code in a dynamic fashion?
>
> For instance, the running program refers to function f1 through ff:
>
> def f1(a):
> return a*1.25
>
> ff=f1
>
> At some point, it turns out that f1(a) should return a*1.3+5.
> If it was possible to insert a new function, the running
> program could be modified like this:
>
> #--- this is to be 'imported'
> def f11(a):
> return a*1.3+5
> #---
>
> ff=f11
>
> Now ff(a) would produce results by using the new rule embodied in f11!
Try it in the interpreter:
>>> def f1(a): return a*1.25
...
>>> ff = f1
>>> ff(1)
1.25
>>> def f2(a): return a*1.3+5
...
>>> ff = f2
>>> ff(1)
6.2999999999999998
>>>
> 2. Something is wrong with globals. Given the example below,
> I'd expect 2 for the second print.
You're misunderstanding the "global" directive. It is used inside a
function to tell the interpreter that it should look for a given
variable in the global scope:
var = 1
def f(x):
global var # look for var in global namespace
var += x
(the global directive is also only needed when assigning to the global,
but you can probably forget that for now...)
-- bjorn
______________________________________________________________________________
Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net
More information about the Python-list
mailing list