On 19Sep2014 02:41, Wang Lei (ERIAN) <l.w...@ntu.edu.sg> wrote:
I really believe that python is a great language but assignment and callable 
are not flexible:

Some flexibilities are too much. But there are ways to do what you ask...

I wish that I can do this:

 class matrixArray(list):
 bla bla bla
   def __call__(self, rid, cid):
       return self.head[rid][cid]

Once I call mat(1,1), I can get a result. but I want it more a value not a 
reference.

You're going to need to be less vague. If the result is, for example, an int, in what fashion is it a value instead of an int as far as you are concerned? Please describe this issue more fully.

Considering "mat(1,1) = 5" expression, I wish the parser can dynamically map "mat(1,1)" 
to reference of value of that "or anonymous reference" or reference defined in class. I don't want 
to modify the lexical parsing in C++ but failed after trying different method in pythonic ways:

Define the __setitem__ method on your matrixArray class. Then you can write:

  mat[1,1] = 5

which is arguably more natural anyway. Assignment and calling are two very different things, and in python they are written differently. That is a good thing.

decorator: fun -> object mapping, because it just substitute function name with new 
function and cannot read "self" object.

I must be missing your point here, too. It does just substitute a new function, but that new function can (and generally must) access "self" to do its work.

I think you are forgetting that the @decorator action occurs at the time the class is defined, not at the time the function is called.

Cheers,
Cameron Simpson <c...@zip.com.au>

More computing sins have been committed in the name of performance,
without necessariliy achieving it, than for all other reasons
combined.       - Wulf
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to