Saltar para o conteúdo principal
🔒 Modo de pré-visualização. As primeiras quinze aulas de Foundations são grátis; esta é Pro. Inicie um trial de 7 dias para desbloquear o editor, as dicas AI e o resto do programa. Cartão necessário, cancele a qualquer momento no Dashboard.Iniciar trial de 7 dias →
← CursosSenior Deep-DivesMódulo 2 · Componentes internos e desempenho do CPythonOtimização de slots em profundidadepredict18 / 161
+100 XP
Tarefa
📝 **Pergunta:** Preveja o resultado exato. \`Point\` declara \`__slots__ = ("x", "y")\`. \`Tagged\` subclasses \`Point\` mas NÃO declara seus próprios \`__slots__\`. Três perguntas: (1) A instância \`Point\` tem um \`__dict__\`? (2) A instância \`Tagged\` possui uma? (3) Você pode definir \`p.z = 99\` e \`t.z = 99\`? 📋 Escolha a resposta certa. 💡 **Dica:** Releia a teoria acima se não tiver certeza.
Prevê a saída

Lê o código com atenção

class Point:
    __slots__ = ("x", "y")
    def __init__(self, x, y):
        self.x = x
        self.y = y


class Tagged(Point):
    pass


p = Point(1, 2)
t = Tagged(3, 4)

print(f"p:{p.x},{p.y}")
print(f"t:{t.x},{t.y}")
print(hasattr(p, "__dict__"))
print(hasattr(t, "__dict__"))

try:
    p.z = 99
    print(f"p.z={p.z}")
except AttributeError:
    print("p:no_z")

t.z = 99
print(f"t.z={t.z}")

O que o programa vai imprimir? Escreve aqui:

💬 Discussão

Seja o primeiro a fazer uma pergunta ou compartilhar uma dica.
Faça login para entrar na discussão. A leitura é gratuita.
Carregando discussão…