Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
OOP Principles Overview
📖 Scenario: Imagine you are creating a simple program to manage a library. You want to organize books and their details using programming concepts that help keep things neat and easy to understand.
🎯 Goal: You will build a small Python program that uses basic Object-Oriented Programming (OOP) principles: creating a class, adding attributes, using a method, and showing how to create and use objects.
📋 What You'll Learn
Create a class named Book
Add attributes title and author to the class
Add a method display_info that prints the book's title and author
Create an object of the Book class with specific title and author
Call the display_info method to show the book details
💡 Why This Matters
🌍 Real World
Organizing data about things like books, movies, or products using classes helps keep programs clear and easy to manage.
💼 Career
Understanding OOP is essential for many programming jobs because it helps build programs that are easier to maintain and expand.
Progress0 / 4 steps
1
Create the Book class with attributes
Create a class called Book with an __init__ method that takes self, title, and author as parameters. Inside __init__, set self.title to title and self.author to author.
Python
Hint
Remember, __init__ is a special method to set up new objects. Use self to store the values inside the object.
2
Add the display_info method
Inside the Book class, add a method called display_info that takes only self as a parameter. This method should print the book's title and author in the format: "Title: {self.title}, Author: {self.author}" using an f-string.
Python
Hint
Use an f-string inside the print statement to show the title and author clearly.
3
Create a Book object
Create an object named my_book from the Book class with the title "The Great Gatsby" and author "F. Scott Fitzgerald".
Python
Hint
Use the class name Book followed by parentheses with the title and author as arguments.
4
Call the display_info method
Call the display_info method on the my_book object to print the book's details.
Python
Hint
Use dot notation to call the method: my_book.display_info().
Practice
(1/5)
1. Which of the following is NOT one of the four main principles of Object-Oriented Programming (OOP)?
easy
A. Compilation
B. Inheritance
C. Polymorphism
D. Encapsulation
Solution
Step 1: Recall the four main OOP principles
The four main principles are Encapsulation, Inheritance, Polymorphism, and Abstraction.
Step 2: Identify the option not in the list
Compilation is a process related to converting code, not an OOP principle.
Final Answer:
Compilation -> Option A
Quick Check:
OOP principles exclude Compilation [OK]
Hint: Remember OOP principles: E, I, P, A [OK]
Common Mistakes:
Confusing compilation with OOP concepts
Mixing up abstraction with compilation
Thinking all programming terms are OOP principles
2. Which Python keyword is used to create a new class?
easy
A. def
B. func
C. object
D. class
Solution
Step 1: Recall Python syntax for defining classes
In Python, the keyword class is used to define a new class.
Step 2: Check other options
def defines functions, object is a base class, and func is not a Python keyword.
Final Answer:
class -> Option D
Quick Check:
Use 'class' to define classes [OK]
Hint: Classes start with 'class' keyword in Python [OK]
Common Mistakes:
Using def instead of class for classes
Confusing object with class keyword
Trying to use func which is invalid
3. What will be the output of this code?
class Animal:
def speak(self):
return "Sound"
class Dog(Animal):
def speak(self):
return "Bark"
pet = Dog()
print(pet.speak())
medium
A. Bark
B. Sound
C. None
D. Error
Solution
Step 1: Understand inheritance and method overriding
Dog class inherits from Animal and overrides the speak method to return "Bark".
Step 2: Check which speak method is called
pet is an instance of Dog, so pet.speak() calls Dog's speak method, returning "Bark".
Final Answer:
Bark -> Option A
Quick Check:
Overridden method returns 'Bark' [OK]
Hint: Child class method overrides parent method [OK]
Common Mistakes:
Expecting parent class method output
Confusing method overriding with overloading
Thinking print outputs None
4. Find the error in this code snippet:
class Car:
def __init__(self, model):
self.model = model
def display(self):
print(Model)
medium
A. Constructor name is wrong
B. Missing self in display method
C. Model should be self.model in print
D. Class name should be lowercase
Solution
Step 1: Check the print statement inside display method
The print statement uses Model which is undefined; it should use self.model to access the instance variable.
Step 2: Verify other parts
The constructor name __init__ is correct, and method has self parameter. Class name capitalization is fine.
Final Answer:
Model should be self.model in print -> Option C
Quick Check:
Use self to access instance variables [OK]
Hint: Use self.variable to access instance data [OK]
Common Mistakes:
Forgetting self in method parameters
Using variable name without self prefix
Thinking constructor name is incorrect
5. You want to create a class that hides its internal data and only allows access through methods. Which OOP principle does this demonstrate?
hard
A. Inheritance
B. Encapsulation
C. Polymorphism
D. Abstraction
Solution
Step 1: Understand the principle of hiding data
Hiding internal data and controlling access through methods is called Encapsulation.
Step 2: Differentiate from other principles
Inheritance is about reusing code, Polymorphism is about using methods in different ways, Abstraction is about hiding complexity but not necessarily data.