1
resposta

[Dúvida] Uso da super classe e atributo privado

Minha dúvida é o seguinte, foi comentado em aula a respeito de usar apenas um "_", para não privar as classes filhas de acessar o atributo da classe mãe, desta forma:

class Programa:
    def __init__(self, nome, ano):
        self._nome = nome.title()
        self.ano = ano
        self._likes = 0

class Filme(Programa):
    def __init__(self, nome, ano, duracao):
        self._nome = nome.title()
        self.ano = ano
        self.duracao = duracao
        self._likes = 0

Posteriormente foi introduzido o conceito da super classe, sendo uma forma mais direta de acesso ao atributo da classe mãe. Não foi explicado se, no caso do uso da super classe deveria manter essa forma de construção com apenas um "_", nos atributos privados. Verifiquei no código que no uso da super classe funciona o método nativo do Python, ou seja, com dois "__"

class Programa:
    def __init__(self, nome, ano):
        self.__nome = nome.title()
        self.ano = ano
        self.__likes = 0

class Filme(Programa):
    def __init__(self, nome, ano, duracao):
        super().__init__(nome, ano)
        self.duracao = duracao

Mas, considerando a questão da sintaxe e convenções da comunidade, qual é considerado mais enxuto, legível e adotado no caso do uso da super classe. Construo com base na convenção da comunidade ou já que é funcional mantenho o método nativo, um ou dois underscore para privar o atributo na classe mãe, em casos de uso da super classe: super().__init__?

1 resposta

Segue sempre a convenção da comunidade... Mas isso vai mudar de empresa pra empresa. Recomendo utilizar o que professor ta usando até pra acompanhar o código e etc.

Mas essas convenções geralmente varia de empresa pra empresa, de lider técnico para lider técnico e etc.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software