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