Mark Dickinson a écrit :
On Sep 28, 9:37 am, Bruno Desthuilliers <bruno.
42.desthuilli...@websiteburo.invalid> wrote:
Joel Juvenal Rivera Rivera a écrit :



Yeah i forgot the self an try the code then i see
an error that it was not defines _uno__a so that's
where i define the global and see that behavior.
(snip)
Joel Juvenal Rivera Rivera wrote:
Hi i was playing around with my code the i realize of this
###################
_uno__a = 1
class uno():
    __a = 2
    def __init__(self):
        print __a
uno()
###################
and prints 1
Looks like a bug to me. I Think you should fill a ticket...

I don't think it's a bug.  Unless I'm missing something,
it's the 'names in class scope are not accessible' gotcha,

I would of course expect the class level name "__a" to be unreachable from within __init__. What puzzle me is that local name "__a" (*not* self.__a) in the __init__ resolves to the module level name "_uno__a".

The double underscores and name mangling are a red herring:

I beg to disagree. The problem (well... what I think is a problem, actually) IS that name mangling is applied to a method *local* variable.


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to