getter-Setter error #python

Asked

Viewed 53 times

0

I wonder where is the error in this supposedly simple code

class Nome:
    def __init__(self,nome,sobrenome):
        self.__nome = nome # variável privada
        self.__sobrenome = sobrenome # variável privada
        self.nome_completo = nome + ' ' + sobrenome # variável pública
    def get_nome(self):
        return self.__nome
    def get_sobrenome(self):
        return self.__sobrenome
    def set_nome(self,novo_nome):
        self.__nome = novo_nome
    def set_nome(self,novo_sobrenome):
        self.__sobrenome = novo_sobrenome



a = Nome('Alan','Aragao')
a.set_nome('ovo')
a.get_nome()

when I execute the code, the name 'egg' is not returned, but the name 'Alan''

1 answer

0


Turns out you’ve defined two methods set_nome, one is changing the value of the property __nome and the other of the estate __sobrenome:

def set_nome(self,novo_nome):
    self.__nome = novo_nome
def set_nome(self,novo_sobrenome):
    self.__sobrenome = novo_sobrenome

With this when calling the set_name method:

a.set_nome('ovo')

In fact who is being updated is the property __sobrenome


You can correct the method name set_nome that updates the property __sobrenome for set_sobrenome, thus rectifying the situation:

def set_sobrenome(self,novo_sobrenome):
    self.__sobrenome = novo_sobrenome

See the example with your full code:

class Nome:
    def __init__(self,nome,sobrenome):
        self.__nome = nome # variável privada
        self.__sobrenome = sobrenome # variável privada
        self.nome_completo = nome + ' ' + sobrenome # variável pública

    def get_nome(self):
        return self.__nome

    def get_sobrenome(self):
        return self.__sobrenome

    def set_nome(self,novo_nome):
        self.__nome = novo_nome

    def set_sobrenome(self,novo_sobrenome):
        self.__sobrenome = novo_sobrenome


a = Nome('Alan','Aragao')
a.set_nome('ovo')

print("Nome:", a.get_nome())
print("Sobrenome:", a.get_sobrenome())

See online: https://repl.it/repls/DirtyLimegreenThings

  • 1

    Vish! went unnoticed heheh. Thank you, friend, good luck with your projects.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.