Bird
Raised Fist0
Pythonprogramming~5 mins

Accessing and modifying attributes in Python - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is an attribute in a Python class?
An attribute is a variable that belongs to an object or class. It stores information about the object.
Click to reveal answer
beginner
How do you access an attribute of an object in Python?
Use the dot notation: object.attribute. For example, car.color accesses the color attribute of the car object.
Click to reveal answer
beginner
How can you change the value of an attribute in Python?
Assign a new value using dot notation: object.attribute = new_value. This updates the attribute's value.
Click to reveal answer
intermediate
What happens if you try to access an attribute that does not exist?
Python raises an AttributeError because the object does not have that attribute.
Click to reveal answer
intermediate
How can you check if an object has a specific attribute before accessing it?
Use the built-in function hasattr(object, 'attribute'). It returns True if the attribute exists, otherwise False.
Click to reveal answer
How do you access the attribute 'age' of an object 'person'?
Aperson->age
Bperson['age']
Cage.person
Dperson.age
What will happen if you try to access a missing attribute in Python?
AReturns None
BRaises AttributeError
CCreates the attribute automatically
DReturns 0
Which of these changes the value of an attribute 'color' of object 'car' to 'red'?
Acar.color = 'red'
Bcar['color'] = 'red'
Ccolor.car = 'red'
Dsetattr(car, 'color')
How can you safely check if 'height' attribute exists in object 'tree'?
Aif tree['height']:
Bif tree.height:
Cif hasattr(tree, 'height'):
Dif 'height' in tree:
What is the correct way to add a new attribute 'speed' with value 100 to object 'car'?
Acar.speed = 100
Bcar['speed'] = 100
Caddattr(car, 'speed', 100)
Dcar.add('speed', 100)
Explain how to access and modify an attribute of an object in Python.
Think about how you get and set values using the dot.
You got /4 concepts.
    Describe what happens if you try to access an attribute that does not exist and how to avoid errors.
    Consider checking before accessing.
    You got /3 concepts.

      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