Listagem 10 - Página 383: Classe Telefone

##############################################################################
# Parte do livro Introdução à Programação com Python
# Autor: Nilo Ney Coutinho Menezes
# Editora Novatec (c) 2010-2024
# Quarta Edição - Março/2024 - ISBN 978-85-7522-886-9
#
# Site: https://python.nilo.pro.br/
#
# Arquivo: capítulo 10/10.1495 - Sem Título.py
# Página: 383
# Título: Classe Telefone
##############################################################################
class Telefone:
    def __init__(self, número, tipo=None):
        self.número = número
        self.tipo = tipo

    def __str__(self):
        tipo = self.tipo or ""
        return f"{self.número} {tipo}"

    def __eq__(self, outro):
        return self.número == outro.número and (
            (self.tipo == outro.tipo) or (self.tipo is None or outro.tipo is None)
        )

    @property
    def número(self):
        return self.__número

    @número.setter
    def número(self, valor):
        if valor is None or not valor.strip():
            raise ValueError("Número não pode ser None ou em branco")
        self.__número = valor
Clique aqui para baixar o arquivo