Exemplos de __str__ em Python no Windows 10
Abaixo estão alguns dos diferentes usos da função __str__ do python. Ao passar completamente por esses exemplos, você entenderá como a funcionalidade dessa função difere entre as classes padrão e definidas pelo usuário.
Exemplo 1
Neste exemplo, queríamos usar uma classe Python predefinida ou padrão, eu.e., DateTime, com a função __STR__. Aqui, gostaríamos de afirmar que para as classes predefinidas ou padrão, todas essas funções são implementadas por padrão. Você não precisa defini -los manualmente. O código que escrevemos para demonstrar este exemplo é o seguinte:
Neste código Python, primeiro importamos o padrão “data hora" aula. Depois disso, declaramos uma variável chamada “atual”E atribuído a ele o valor do“data hora.agora()"Função do"data hora”Python Class. Esta função retorna a data e hora do sistema atual. Depois disso, queríamos imprimir o valor da função __STR__ seguida pelo valor da função __repr__.
A saída produzida como resultado da execução deste script python é mostrada na imagem abaixo:
Sabemos que as funções __STR__ e __Repr__ foram implementadas por padrão, pois estávamos usando uma classe predefinida, i i.e., data hora. A função __str__ simplesmente retornou a saída do “data hora.agora()”Função na forma de uma string. Por outro lado, a função __repr__ retornou a saída do “data hora.agora()”Função em um formato usando o qual essa saída pode ser reconstruída. O ponto a ser observado aqui é que esses resultados são apenas baseados nas implementações padrão das funções __STR__ e __repr__ do python.
Exemplo 2
Neste exemplo, queríamos usar a função __STR__ com uma classe definida pelo usuário de uma maneira que as funções __str__ e __repr__ não foram definidas. O código que escrevemos para demonstrar este exemplo é o seguinte:
Neste código Python, declaramos uma classe chamada “Funcionário”. Em seguida, inicializamos seus atributos que eram emp_name e EMP_ID. Depois disso, criamos um objeto do “Funcionário”Classe eu.e., ““E”E com a ajuda deste objeto, criamos uma instância do funcionário com o emp_name“Hasan”E emp_id“1”. Finalmente, simplesmente imprimimos o valor da função __STR__ seguida pelo valor da função __repr__. Gostaríamos de mencionar novamente que ainda não implementamos nenhuma dessas funções.
A saída que foi produzida como resultado da execução deste script python é mostrada na imagem abaixo:
Como lidamos com uma classe definida pelo usuário neste exemplo, deveríamos implementar as funções __STR__ e __Repr__. No entanto, não o fizemos, e é por isso que simplesmente recebemos o endereço do “Funcionário”Objeto como nossa saída.
Exemplo 3
Neste exemplo, queríamos usar a função __STR__ com uma classe definida pelo usuário para que apenas a função __repr__ seja definida e não a função __STR__. O código que escrevemos para demonstrar este exemplo é o seguinte:
Neste código Python, declaramos uma classe chamada “Funcionário”. Em seguida, inicializamos seus atributos que eram emp_name e EMP_ID. Também definimos a função __repr__, e essa definição é personalizada de acordo com nossa própria escolha. Depois disso, criamos um objeto do “Funcionário”Classe eu.e., ““E”E com a ajuda deste objeto, criamos uma instância do funcionário com o emp_name“Hasan”E emp_id“1”. Finalmente, simplesmente imprimimos o valor da função __STR__ seguida pelo valor da função __repr__.
A saída que foi produzida como resultado da execução deste script python é mostrada na imagem abaixo:
Como definimos a função __repr__ em nosso código, a mesma definição foi usada para produzir a saída das funções __repr__ e __STR__.
Exemplo 4
Neste exemplo, queríamos usar a função __STR__ com uma classe definida pelo usuário de uma maneira que as funções __repr__ e __str__ foram definidas. O código que escrevemos para demonstrar este exemplo é o seguinte:
Neste código Python, declaramos uma classe chamada “Funcionário”. Em seguida, inicializamos seus atributos que eram emp_name e EMP_ID. Também definimos as funções __repr__ e __str__, e essas definições são personalizadas de acordo com nossa própria escolha. A função __STR__ exibirá a saída na forma de uma declaração completa, enquanto a função __repr__ simplesmente retornará os valores de saída da string em nosso caso. Depois disso, criamos um objeto do “Funcionário”Classe eu.e., "E" e com a ajuda desse objeto, criamos uma instância do funcionário com o emp_name "Hasan”E emp_id“1”. Finalmente, simplesmente imprimimos o valor da função __STR__ seguida pelo valor da função __repr__.
A saída que foi produzida como resultado da execução deste script python é mostrada na imagem abaixo:
Como as funções __STR__ e __Repr__ foram definidas em nosso código e as definições de ambas as funções diferiram entre si, as saídas dessas duas funções são diferentes.
Exemplo 5
Neste exemplo, queríamos usar a função __STR__ com uma classe definida pelo usuário de uma maneira que apenas a função __STR será definida e não a função __repr__. O código que escrevemos para demonstrar este exemplo é o seguinte:
Neste código Python, declaramos uma classe chamada “Funcionário”. Em seguida, inicializamos seus atributos que eram emp_name e EMP_ID. Também definimos a função __STR__, e essa definição é personalizada de acordo com nossa própria escolha. Depois disso, criamos um objeto do “Funcionário" aula, "E”, E com a ajuda desse objeto, criamos uma instância do funcionário com o EMP_NAME“Hasan”E emp_id“1”. Finalmente, simplesmente imprimimos o valor da função __STR__ seguida pelo valor da função __repr__.
A saída que foi produzida como resultado da execução deste script python é mostrada na imagem abaixo:
Como apenas definimos a função __STR__ em nosso código, seu valor foi impresso corretamente. Considerando que, para a função __repr__, recebemos novamente o endereço de nosso “Funcionário”Objeto, já que esta função não foi definida em nosso código.
Conclusão
Neste guia, primeiro apresentamos você às funções __STR__ e __Repr__ do Python. Para entender bem o funcionamento dessas funções, compartilhamos cinco exemplos diferentes com você, nos quais mostramos como a implementação de uma ou ambas as funções afeta a saída do seu código Python. A última coisa que gostaríamos de lembrá -lo é se você usar essas funções com uma classe padrão, não precisará definir essas funções explicitamente. No entanto, para as classes definidas pelo usuário, é obrigatório definir essas funções.