Atributos privados...ou não.

14 views
Skip to first unread message

Cássio Botaro

unread,
Apr 7, 2012, 9:49:25 PM4/7/12
to pyth...@googlegroups.com
Em python(2.x ou 3.x) quando se nomeia um atributo com __ ele se torna "privado"(dificulta as coisas para acessa-lo).Porem se terminado com __ este passa a ser um nome comum.Alguém sabe a explicação?

Exemplo:
class teste(object):
    def __init__(self):
        self.__teste1 = 0  #aqui se torna privado
        self.__teste2__ = 0 # aqui continua como nome

Rafael Alencar

unread,
Apr 7, 2012, 10:25:40 PM4/7/12
to pyth...@googlegroups.com

Cássio Botaro

unread,
Apr 8, 2012, 7:00:18 PM4/8/12
to pyth...@googlegroups.com
Só complementando com resposta que obtive na python Brasil:

Olá Cassio,

    (Apenas complementando o link do Rafael) O Python deduz que qualquer coisa com __este__ padrão é considerado um método especial, às vezes chamado de "Magic Methods". Eles são chamados pelo Python para realizar algumas operações. Por exemplo, quando você converte um número para string (str(123)) é chamado o método __str__, durante a soma é chamado o método __add__ e por ai vai.

    Aqui tem um artigo bem interessante que explica praticamente todos os métodos especiais: http://www.rafekettler.com/magicmethods.html

Att,
Magnun Leno

Carlos Daniel

unread,
Apr 8, 2012, 7:06:17 PM4/8/12
to pyth...@googlegroups.com
Boa!

Bem simples modificar a visibilidade de um atributo =)

[]´s
Reply all
Reply to author
Forward
0 new messages