Oii Amon, como você está?
Podemos coletar a entrada do usuário através do input()
, salvarmos essa entrada em uma variável e fornecê-la como atributo para o objeto da classe.
Considere que temos uma classe Cliente
possui o atributo nome_cliente
declarado no método inicializador (__init__
), esse atributo deverá ser fornecido através de uma entrada do usuário e podemos instanciar nosso objeto como apresentado abaixo:
nome_do_usuario = input("Digite seu nome: ")
objeto = Cliente(nome_do_usuario)
Ao executarmos nosso código, será apresentado a mensagem pedindo que o usuário informe o nome do usuário, e esse nome será fornecido como parâmetro para a criação do objeto. Abaixo a classe Cliente
com a declaração completa:
class Cliente:
def __init__(self, nome_cliente):
self.nome_cliente = nome_cliente
def formata_nome_cliente(self):
return print(f"Nome do Cliente: {self.nome_cliente.upper()}")
nome_do_usuario = input("Digite seu nome: ")
objeto = Cliente(nome_do_usuario)
objeto.formata_nome_cliente()
Você também pode usar o input
diretamente no construtor __init__
da classe, como mostro abaixo:
class Cliente:
def __init__(self):
self.nome_cliente = input("Digite seu nome: ")
def formata_nome_cliente(self):
return print(f"Nome do Cliente: {self.nome_cliente.upper()}")
objeto = Cliente()
objeto.formata_nome_cliente()
Porém, dessa forma não fica explícito para quem invoca a classe, quais parâmetros a classe Cliente
trabalha e seguindo o princípio do Zen do Python, ”explícito é melhor que implícito”. Lembrando que o Zen do Python é uma coleção de 19 princípios para escrever códigos em Python. Mas vale ressaltar que você pode encontrar as entradas de usuário desses dois modos apresentados: tanto dentro da classe, como passando os parâmetros na criação do objeto.
Como recomendação de leitura, deixo o seguinte artigo, onde aborda com mais detalhes sobre os tópicos presentes no Zen do Python.
Qualquer dúvida fico à disposição.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!