On Sun, Nov 3, 2013 at 1:06 AM, Peter Cacioppi <peter.cacio...@gmail.com> wrote: > Actually C# is mature enough for this idiom. C# and Python both support > getter/setter methods that present as direct attribute access to client code, > and thus allow you to refactor the class without breaking backwards > compatibility.
It's not as clear-cut as it looks in C#. Although refactoring the class in this way doesn't change the API, it does break ABI, which is significant in an environment where virtually everything is distributed in binary form. This happens because a property access compiled to CIL byte code is transformed into a call to a getter or setter method, which is a distinct operation from an ordinary attribute access. Whereas in Python, an attribute access is just compiled as an attribute access no matter what the underlying implementation of that access may end up being at run-time. -- https://mail.python.org/mailman/listinfo/python-list