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
Accessing and Modifying Attributes
📖 Scenario: You are creating a simple program to manage a book's information. You will work with a Book class that has attributes for the book's title and author.
🎯 Goal: Build a program that creates a Book object, accesses its attributes, modifies one attribute, and then prints the updated information.
📋 What You'll Learn
Create a Book class with title and author attributes
Create an instance of Book with specific title and author
Access and modify the title attribute of the Book instance
Print the updated title and author of the book
💡 Why This Matters
🌍 Real World
Managing and updating information about objects like books, products, or users is common in software applications.
💼 Career
Understanding how to access and modify object attributes is fundamental for programming jobs involving object-oriented programming.
Progress0 / 4 steps
1
Create the Book class and an instance
Create a class called Book with an __init__ method that takes title and author as parameters and assigns them to attributes. Then create an instance called my_book with the title 'The Great Gatsby' and author 'F. Scott Fitzgerald'.
Python
Hint
Define the Book class with an __init__ method that sets self.title and self.author. Then create my_book using the class.
2
Access the title attribute
Create a variable called current_title and set it to the title attribute of the my_book object.
Python
Hint
Use dot notation to get the title from my_book and assign it to current_title.
3
Modify the title attribute
Change the title attribute of my_book to 'The Great Gatsby - Revised Edition'.
Python
Hint
Use dot notation to assign the new string to my_book.title.
4
Print the updated book information
Print the updated title and author attributes of my_book in the format: Title: [title], Author: [author].
Python
Hint
Use an f-string to print the updated title and author from my_book.
Practice
(1/5)
1. What is the correct way to access the attribute color of an object car in Python?
easy
A. car.color
B. car[color]
C. car->color
D. car[color()]
Solution
Step 1: Understand attribute access syntax
In Python, attributes of an object are accessed using dot notation: object.attribute.
Step 2: Apply to given object and attribute
For object car and attribute color, the correct syntax is car.color.
Final Answer:
car.color -> Option A
Quick Check:
Dot notation accesses attributes = car.color [OK]
Hint: Use dot (.) to access attributes on objects [OK]
Common Mistakes:
Using brackets like car[color]
Using arrow notation like car->color
Calling attribute as a function like car[color()]
2. Which of the following is the correct syntax to change the attribute age of an object person to 30?
easy
A. person["age"] = 30
B. person.age = 30
C. person->age = 30
D. person.age(30)
Solution
Step 1: Recall attribute assignment syntax
To modify an attribute, use dot notation with assignment: object.attribute = value.
Step 2: Apply to given object and attribute
Set person.age to 30 by writing person.age = 30.
Final Answer:
person.age = 30 -> Option B
Quick Check:
Assign attribute with dot and equals = person.age = 30 [OK]
Hint: Use dot and equals to set attribute: obj.attr = value [OK]
Common Mistakes:
Using brackets like person["age"] = 30
Using arrow notation person->age = 30
Trying to call attribute like a function person.age(30)
3. What will be the output of this code?
class Dog:
def __init__(self, name):
self.name = name
my_dog = Dog("Buddy")
print(my_dog.name)
my_dog.name = "Max"
print(my_dog.name)
medium
A. Buddy\nBuddy
B. Max\nBuddy
C. Max\nMax
D. Buddy\nMax
Solution
Step 1: Understand initial attribute value
The constructor sets self.name to "Buddy". So, my_dog.name is initially "Buddy".
Step 2: Modify attribute and print again
After printing "Buddy", the code sets my_dog.name = "Max". The second print outputs "Max".
Final Answer:
Buddy
Max -> Option D
Quick Check:
Initial then changed attribute prints = Buddy Max [OK]
Hint: Changing attribute updates value printed next [OK]
Common Mistakes:
Thinking attribute change does not affect output
Confusing order of prints
Assuming attribute is immutable
4. Identify the error in this code snippet:
class Cat:
def __init__(self, color):
self.color = color
kitty = Cat("black")
print(kitty[color])
medium
A. Using brackets instead of dot to access attribute
B. Missing parentheses in class definition
C. Incorrect constructor name
D. Attribute 'color' not defined
Solution
Step 1: Check attribute access syntax
The code uses kitty[color], which tries to access like a dictionary key, but color is an attribute, not a key.
Step 2: Correct syntax for attribute access
Use dot notation: kitty.color to access the attribute.
Final Answer:
Using brackets instead of dot to access attribute -> Option A
Quick Check:
Attributes use dot, not brackets = Using brackets instead of dot to access attribute [OK]
Hint: Use dot, not brackets, to access attributes [OK]
Common Mistakes:
Using brackets like kitty[color]
Thinking attributes are dictionary keys
Confusing attribute access with indexing
5. Given this class:
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
book1 = Book("1984", "Orwell")
book2 = Book("Animal Farm", "Orwell")
# Change author of book2 to "George Orwell"
Which code correctly updates book2 author without affecting book1?
hard
A. book2["author"] = "George Orwell"
B. Book.author = "George Orwell"
C. book2.author = "George Orwell"
D. book1.author = "George Orwell"
Solution
Step 1: Understand instance vs class attributes
Changing book2.author modifies only that instance's attribute, not book1.
Step 2: Avoid changing class attribute or other instance
Assigning Book.author changes class attribute for all instances; changing book1.author affects wrong object; brackets are invalid syntax.
Final Answer:
book2.author = "George Orwell" -> Option C
Quick Check:
Set instance attribute with dot on correct object = book2.author = "George Orwell" [OK]
Hint: Assign attribute on specific object with dot notation [OK]
Common Mistakes:
Changing class attribute instead of instance attribute