Does Python really follow its philosophy of "Readability counts"?
Steven D'Aprano
steven at REMOVE.THIS.cybersource.com.au
Thu Jan 22 02:59:57 EST 2009
On Wed, 21 Jan 2009 01:02:37 -0800, Aaron Brady wrote:
>> >>> class Parrot:
>>
>> ... _private = 'spam'
>> ...>>> p = Parrot()
>> >>> p._private = 'ham' # allowed by default from protection import
>> >>> lock
>> >>> lock(p)._private
>> >>> p._private = 'spam'
>>
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> ProtectionError: attribute is read-only from outside of class Parrot
>>
>> Would that be so bad? I don't think so.
>
> Sorry, I didn't see the last part originally. I don't think 'outside of
> class Parrot' is well-defined in Python. Does '_private' have to be a
> member of 'Parrot', an instance of 'Parrot', or the calling instance of
> 'Parrot', before entering the calling scope, or at the time the call is
> made? Since many of these can change on the fly, there's more than one
> consistent interpretation to the syntax.
This is a good point. Any hypothetical move to make Python (or a Python-
like language) stricter about private/protected attributes would need to
deal with that question. I don't have to worry about that until somebody
writes a PEP :)
--
Steven
More information about the Python-list
mailing list