Bird
Raised Fist0
Pythonprogramming~5 mins

Accessing and modifying attributes in Python

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
Introduction

Attributes store information about an object. Accessing and changing them lets you see or update that information.

You want to check the details of a person stored in a program.
You need to update the score of a player in a game.
You want to change the color of a shape on the screen.
You want to read or change settings saved in an object.
Syntax
Python
object.attribute  # to access
object.attribute = new_value  # to modify

Use dot . to get or set an attribute.

Make sure the attribute exists before accessing it to avoid errors.

Examples
Access the color attribute of my_car.
Python
class Car:
    def __init__(self, color):
        self.color = color

my_car = Car('red')
print(my_car.color)
Modify the color attribute to a new value.
Python
my_car.color = 'blue'
print(my_car.color)
Access and then update the age attribute of a Person object.
Python
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person('Anna', 30)
print(p.age)
p.age = 31
print(p.age)
Sample Program

This program creates a Book object, shows its attributes, then changes the author and shows the new value.

Python
class Book:
    def __init__(self, title, author):
        self.title = title
        self.author = author

book1 = Book('Python Basics', 'Sam')

# Access attributes
print(f"Title: {book1.title}")
print(f"Author: {book1.author}")

# Modify attribute
book1.author = 'Alex'
print(f"Updated Author: {book1.author}")
OutputSuccess
Important Notes

Trying to access an attribute that does not exist will cause an error.

You can add new attributes by assigning them, like object.new_attr = value.

Summary

Use dot notation to get or set attributes on objects.

Attributes hold data about the object.

Changing attributes updates the object's information.

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