NEW
Font size
WorksheetsDesenvolvimento sis 2tri
Total questions: 20
Worksheet time: 15mins
Qual dos problemas abaixo é característico do paradigma procedural quando comparado à programação orientada a objetos?
Alta coesão entre dados e comportamento
Facilidade na reutilização de código
Código fortemente acoplado e difícil de manter
Modularidade baseada em classes e objetos
Em Python, ao criar uma classe, qual é o propósito principal do método __init__?
Criar variáveis globais
Chamar métodos estáticos
Inicializar os atributos de um novo objeto
Definir o nome da classe
Qual dos seguintes é um exemplo válido de encapsulamento em Python?
Criar uma função dentro de outra função
Utilizar listas aninhadas
Tornar um atributo privado usando __ antes do nome
Usar import para esconder funções
Sobre métodos privados em Python, o que ocorre ao declarar def __calcular_total(self): dentro de uma classe?
O método será acessível de qualquer lugar do código
Será automaticamente convertido em método estático
O método será acessível apenas dentro da própria classe
O Python impedirá a criação do método
O que o decorador @property permite em uma classe Python?
Executar o método como uma função estática
Definir valores constantes
Acessar métodos como se fossem atributos
Ocultar o método de outras classes
Assinale a alternativa que representa corretamente o uso de um método estático:
@staticmethod acima da definição e nenhum uso de self
@classmethod e uso de self como primeiro argumento
Método que só pode ser acessado fora da classe
Método que sempre retorna uma instância da classe
Qual a diferença principal entre @classmethod e @staticmethod em Python?
Ambos recebem self, mas usam escopos diferentes
@classmethod recebe cls e pode acessar atributos de classe, @staticmethod não
@staticmethod pode modificar atributos da instância
@classmethod impede herança, enquanto @staticmethod não
Dado o seguinte código, o que será impresso?
class Exemplo:
def __init__(self):
self.__valor = 10
def get_valor(self):
return self.__valor
obj = Exemplo()
print(obj.get_
valor())
0
10
Erro de execução
__valor
O que o princípio de encapsulamento visa garantir?
Que todos os métodos sejam públicos
Separar código em vários arquivos
Controle de acesso aos dados da classe
Uso obrigatório de herança
Sobre a herança em Python, assinale a opção correta:
Uma classe não pode herdar de mais de uma classe
palavra-chave extends é usada para herança
A palavra-chave super() permite acessar métodos da superclasse
Métodos herdados não podem ser sobrescritos
O que é uma subclasse em Python?
Um método que pertence a mais de uma classe
Uma função decorada com @subclass
Uma classe derivada de outra que herda seus atributos e métodos
Uma variável definida dentro de outra classe
Quando não é aconselhado usar herança em Python?
Quando há uma forte relação "é um" entre classes
Quando classes compartilham atributos comuns
Quando o relacionamento entre as classes é "tem um"
Quando queremos reaproveitar código base
Sobre o uso de propriedades em classes Python, o que o decorador @propriedade.setter permite?
Tornar um atributo somente leitura
Definir o valor de uma propriedade controladamente
Criar atributos estáticos
Evitar o uso do método init
O que é verdadeiro sobre métodos de instância em Python?
São métodos que não têm acesso à instância
Utilizam o @staticmethod
Recebem self como primeiro argumento
Não podem acessar atributos da classe
O que é sobrescrita (override) de métodos em Python?
Quando um método é duplicado com outro nome
Quando uma subclasse redefine um método da superclasse
Quando um método se torna private
Quando um método perde seu retorno
Em qual situação a herança pode gerar problemas em Python?
Quando usada com o padrão de composição
Quando usada para acessar atributos protegidos
Quando há múltiplas heranças mal planejadas
Quando as classes não utilizam super()
Dado o código abaixo, o que será impresso?
class A:
def falar(self):
return "Classe A"
class B(A):
def falar(self):
return "Classe B"
print(B().
falar())
Classe A
Classe B
Erro de Compilação
Nenhuma saída
Qual é o propósito do super() dentro de uma subclasse?
Criar um atributo privado
Referenciar a instância atual
Referenciar a superclasse e acessar seus métodos
Evitar herança múltipla
Qual alternativa representa uma situação onde a herança pode ser evitada em favor da composição?
Quando subclasses apenas adicionam atributos
Quando queremos reutilizar código de múltiplas classes independentes
Quando usamos @property
Quando a superclasse é abstrata
Em Python, como definimos que um atributo é considerado “privado”?
Declarando com global
Nomeando com dois sublinhados iniciais, como __atributo
Usando private na declaração
