Bird
Raised Fist0
Pythonprogramming~10 mins

Accessing and modifying attributes in Python - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to access the attribute 'color' of the car object.

Python
print(car.[1])
Drag options to blanks, or click blank then click option'
Ayear
Bspeed
Ccolor
Dmodel
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses like a method call, e.g., car.color()
Trying to access attribute with brackets, e.g., car['color']
2fill in blank
medium

Complete the code to change the 'speed' attribute of the car object to 100.

Python
car.[1] = 100
Drag options to blanks, or click blank then click option'
Aspeed
Bcolor
Cmodel
Dyear
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses like a method call, e.g., car.speed() = 100
Trying to assign to a non-existing attribute
3fill in blank
hard

Fix the error in the code to correctly access the 'model' attribute of the car object.

Python
print(car[1]model)
Drag options to blanks, or click blank then click option'
A["model"]
Bmodel
C->model
D.model
Attempts:
3 left
💡 Hint
Common Mistakes
Using square brackets like a dictionary: car["model"]
Using arrow notation which is not valid in Python
4fill in blank
hard

Fill both blanks to create a new attribute 'owner' with value 'Alice' for the car object.

Python
car.[1] = [2]
Drag options to blanks, or click blank then click option'
Aowner
B'Alice'
C'Bob'
Dspeed
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting quotes around the string value
Using an existing attribute name instead of a new one
5fill in blank
hard

Fill all three blanks to print the updated 'year' attribute after changing it to 2025.

Python
car.[1] = [2]
print(car.[3])
Drag options to blanks, or click blank then click option'
Ayear
B2025
Dspeed
Attempts:
3 left
💡 Hint
Common Mistakes
Using quotes around the number 2025
Printing a different attribute than the one changed

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

  1. Step 1: Understand attribute access syntax

    In Python, attributes of an object are accessed using dot notation: object.attribute.
  2. Step 2: Apply to given object and attribute

    For object car and attribute color, the correct syntax is car.color.
  3. Final Answer:

    car.color -> Option A
  4. 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

  1. Step 1: Recall attribute assignment syntax

    To modify an attribute, use dot notation with assignment: object.attribute = value.
  2. Step 2: Apply to given object and attribute

    Set person.age to 30 by writing person.age = 30.
  3. Final Answer:

    person.age = 30 -> Option B
  4. 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

  1. Step 1: Understand initial attribute value

    The constructor sets self.name to "Buddy". So, my_dog.name is initially "Buddy".
  2. Step 2: Modify attribute and print again

    After printing "Buddy", the code sets my_dog.name = "Max". The second print outputs "Max".
  3. Final Answer:

    Buddy Max -> Option D
  4. 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

  1. 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.
  2. Step 2: Correct syntax for attribute access

    Use dot notation: kitty.color to access the attribute.
  3. Final Answer:

    Using brackets instead of dot to access attribute -> Option A
  4. 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

  1. Step 1: Understand instance vs class attributes

    Changing book2.author modifies only that instance's attribute, not book1.
  2. 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.
  3. Final Answer:

    book2.author = "George Orwell" -> Option C
  4. 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
  • Modifying wrong object's attribute
  • Using brackets instead of dot notation