[EMAIL PROTECTED] wrote:
i wonder if there is an automatic way to make that without calling a
function.

You mean without _explicitely_ calling a function. May I inquire why you need to write f instead of f(x)?

an automatic way that depends on changing the value of x. as each time
x=something used the whole matrix changes automaticly.

As pointed out by El Pitonero property can be your friend:

 >>> class A(object):
 ...     def get_v(self):
 ...             return [1,x]
 ...     v=property(get_v)
 ...
 >>> a=A()
 >>> x=0
 >>> a.v
 [1, 0]
 >>> x=2
 >>> a.v
 [1, 2]
 >>>

However, you will calculate your matrix each time you will access it (and I find it ugly to use a global variable this way).

You can however build it the other way round:

 >>> class B(object):
 ...     def __init__(self):
 ...             self.v=[1,0]
 ...             self.x=0
 ...     def calc_v(self):
 ...             self.v[1]=self.__x
 ...     def set_x(self,x):
 ...             self.__x=x
 ...             self.calc_v()
 ...     def get_x(self):
 ...             return self.__x
 ...     x=property(get_x, set_x)
 ...
 >>> b=B()
 >>> b.v
 [1, 0]
 >>> b.x=2
 >>> b.v
 [1, 2]
 >>>

This time, calculations only occur when you change the value of x.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to