This keyword is used to define a new class in Python
What is class?
This term describes a class that inherits attributes and methods from another class
What is a subclass (child class)?
This term describes the ability of different classes to respond to the same method call in different ways
What is polymorphism?
A class containing at least one method with no implementation, meant only to be subclassed, is called this
What is an abstract class?
This term describes bundling data and the methods that operate on it within a single class
What is encapsulation?
This special method is automatically called when a new object is created from a class
What is __init__
This term describes the class being inherited from
What is a superclass (parent class)?
When a subclass provides its own version of a method already defined in its parent, this is what's happening
What is method overriding?
This module in Python's standard library provides tools for creating abstract base classes
What is abc?
Prefixing an attribute with a single underscore, like _balance, signals this convention to other developers
What is "protected" (a protected member)?
This parameter, always listed first in instance methods, refers to the object calling the method
What is self
This built-in function lets a child class call a method from its parent class
What is super()?
This built-in function, when called on +, -, or * between custom objects, relies on polymorphism via dunder methods like __add__
What is an operator (operator overloading)?
This is what happens if you try to directly create an instance of a class that has unimplemented abstract methods
What is a TypeError (instantiation fails)?
Prefixing an attribute with double underscores, like __balance, triggers this Python mechanism
What is name mangling?
A class is a blueprint, and this term describes a specific object created from that blueprint
What is an instance?
Python supports this type of inheritance, where a class can inherit from more than one parent class
What is multiple inheritance?
This term describes an object's ability to be treated as an instance of its parent class, enabling polymorphic behavior
What is upcasting?
This term describes the exposed methods and properties a class offers to the outside world, hiding the messy internals
What is an interface?
This decorator lets you define a method that can be accessed like an attribute, often used to control access to private data
What is @property?
This built-in function returns True if an object is an instance of a specified class
What is isinstance()
This dunder attribute shows the method resolution order used when a class inherits from multiple classes
What is __mro__
This concept, often summarized as "if it walks like a duck," lets Python use polymorphism without requiring explicit inheritance
What is duck typing?
In Python, you achieve abstraction without the formal abc module by simply defining a method in the parent that raises this built-in exception, expecting subclasses to override it
What is NotImplementedError?
This decorator, paired with a @property, lets you define custom logic for setting an attribute's value
What is @<attribute>.setter?