1
resposta

2 (underscore) com nome da classe como prefixo?

Vimos que o Python segue uma convenção para deixar claro que um atributo ou método é considerado privado.

Referente a convenção, veja as seguintes afirmações.

Dentro de uma classe Conta ...

a) ... o atributo saldo se torna _Contasaldo.

b) ... o método pode_sacar() se torna _Contapode_sacar().

c) ... o construtor init se torna init.

d) ... a referencia self se torna __self.

Quais das afirmativas estão corretas?

Correto! Usando __ alterar o nome do atributo ou método, colocando o nome da classe como prefixo.

Porem na vídeo aula eu entendi que seria apenas para adicionar 2 (underscore) antes do nome do método e não colocando o nome da classe como prefixo.

1 resposta

Fala Kaique, beleza cara?

Seguinte, você só precisa adicionar o duplo underscore dentro da classe mesmo, mas ao fazer isso, para acessar o método ou o atributo fora da classe, ele passa a carregar a classe como prefixo junto também.

Usando o mesmo exemplo do exercício:

class Conta:
    def __init__(self, saldo):
        self.__saldo = saldo

Sem o duplo underscore, você poderia acessar o saldo fora da classe apenas com o comando conta.saldo.

Mas com o duplo underscore, se você quiser acessar o saldo fora da classe, ele agora precisa do seguinte comando: conta. Conta_saldo.

Isso acontece justamente para deixar mais difícil o acesso fora da classe, como foi dito na aula, é um "aviso" que esse objeto não deve ser acessado fora da classe.

Espero que tenha ajudado na dúvida :)