extracting variables accessed and written from function / rule-based function calls

Daniel dalist0 at gmail.com
Mon Nov 1 23:44:01 CET 2010


Hello,


I have a class with some members that depend on others. Initially most
of them are None.
For each one there is a function to calculate it as soon as some other
dependencies become available.
In the end, all values can be computed by the right sequence of
function applications.

class A:
    def __init__(self):
        self.a = None
        self.b = None
        self.c = none

    def f1(self): # compute a given b and c
        self.a = 2*self.b + math.sin(self.c)

Now I am looking for a way to call these functions only when the
preconditions are met (in this case b and c are not None) and when the
result is needed (a is None).
I could wrap each function in a class like this:
class rule_a_from_b_and_c:
    def __init__(self, parent): self.parent = parent
    def pre(self): return self.parent.b is not None and self.parent.c
is not None
    def needed(self): return self.parent.a is None
    def rule(self): self.parent.a = 2*self.parent.b +
math.sin(self.parent.c)

This way I have to replicate the inputs an the output of the function
for each rule, which is a lot of work.
Is there a way to access the values read by the function and written
to by the function f?
Like values _read(f)  returns (self.b, self.c), values_written(f)
returns (self.a,)


Dan




More information about the Python-list mailing list