12.03.2011 10:37, Tomer Filiba kirjoitti:
not on special (slot) methods, alex. slot methods are contained inside the type for efficiency, their invocation does not go through __getattr__/__getattribute__.
Which is exactly what the docs I linked to say. I was being too broad when I said that "all" attribute access goes through it. If IronPython does things differently, it is deviating from the spec.
consider this code:

>>> class C(object):
...     def __getattribute__(self, x):
...             return 17
...     def __str__(self):
...             return "hello"
...
>>> x=C()
>>> str(x)
'hello'
>>> x.__str__
17

it seems ironpython has a different object model.

jerome -- thank you very much for the fix :)


-tomer

An NCO and a Gentleman


2011/3/12 Alex Grönholm <[email protected] <mailto:[email protected]>>

    12.03.2011 08:04, delattj kirjoitti:

        I got it working with this fix:
        
https://github.com/delattj/rpyc/commit/5d2fd956e550eb177e708aa06463827b3d860cf9

        But I don't get it... :/
        Seems __call__ goes through the __getattribute__ method in
        IronPython.

    What's strange about that? __getattribute__ is called on all
    attribute access -- that is how it's documented here:
    http://docs.python.org/reference/datamodel.html#object.__getattribute__



Reply via email to