Bird
Raised Fist0
Pythonprogramming~5 mins

Public 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 are public attributes in Python classes?
Public attributes are variables defined inside a class that can be accessed and modified from outside the class freely.
Click to reveal answer
beginner
How do you define a public attribute in a Python class?
You define a public attribute by simply assigning a variable inside the class without any special prefix, for example: <code>self.name = 'Alice'</code>.
Click to reveal answer
beginner
Can you access public attributes from outside the class? Show an example.
Yes, you can access public attributes directly. Example:<br><code>class Person:<br>    def __init__(self, name):<br>        self.name = name<br>p = Person('Bob')<br>print(p.name)  # Outputs: Bob</code>
Click to reveal answer
beginner
What happens if you modify a public attribute from outside the class?
Modifying a public attribute from outside the class changes its value for that object. For example:<br><code>p.name = 'Charlie'</code> changes the name attribute to 'Charlie'.
Click to reveal answer
beginner
Are public attributes safe from accidental changes?
No, public attributes can be changed accidentally or intentionally from outside the class because they have no access restrictions.
Click to reveal answer
How do you access a public attribute named 'age' of an object 'person'?
Aperson->age
Bperson.age
Cperson.__age
Dperson._age
Which of these is a public attribute in Python?
Aself.__name
Bself._name
Cself.name
Dself.__name__
What happens if you try to change a public attribute from outside the class?
ANothing happens.
BPython raises an error.
CThe attribute becomes private.
DThe attribute value changes.
Which of these is true about public attributes?
AThey can be accessed and modified from outside the class.
BThey cannot be accessed from outside the class.
CThey are hidden by default.
DThey require special methods to access.
How do you define a public attribute inside a class constructor?
Aself.attribute = value
B_attribute = value
C__attribute = value
Dattribute = value
Explain what public attributes are and how you use them in Python classes.
Think about variables inside a class that anyone can see and change.
You got /4 concepts.
    Describe the difference between public attributes and private attributes in Python.
    Consider how naming affects access.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is a public attribute in a Python class?
      easy
      A. An attribute that can be accessed and changed from outside the class
      B. An attribute that is hidden and cannot be accessed outside the class
      C. A method that runs automatically when an object is created
      D. A special function to delete an object

      Solution

      1. Step 1: Understand attribute visibility

        Public attributes are designed to be accessed and modified from outside the class.
      2. Step 2: Compare options

        An attribute that can be accessed and changed from outside the class correctly describes public attributes. Options A, B, and D describe other concepts.
      3. Final Answer:

        An attribute that can be accessed and changed from outside the class -> Option A
      4. Quick Check:

        Public attribute = accessible outside [OK]
      Hint: Public means anyone can access or change it [OK]
      Common Mistakes:
      • Confusing public with private attributes
      • Thinking methods are attributes
      • Mixing up constructors with attributes
      2. Which of the following is the correct way to create a public attribute name inside a Python class constructor?
      easy
      A. self->name = value
      B. self.name = value
      C. name = self.value
      D. def name(self):

      Solution

      1. Step 1: Recall syntax for public attributes

        Inside __init__, public attributes are created by assigning to self.attribute_name.
      2. Step 2: Check each option

        self.name = value uses correct syntax: self.name = value. Others are invalid Python syntax or wrong usage.
      3. Final Answer:

        self.name = value -> Option B
      4. Quick Check:

        Use self.attribute = value [OK]
      Hint: Use self.attribute = value inside __init__ [OK]
      Common Mistakes:
      • Using def instead of assignment
      • Wrong arrow syntax like self->name
      • Assigning attribute to name instead of self.name
      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)
      medium
      A. Dog
      B. Error
      C. my_dog
      D. Buddy

      Solution

      1. Step 1: Understand attribute assignment

        The constructor sets self.name to the value passed, which is 'Buddy'.
      2. Step 2: Print the attribute value

        Printing my_dog.name outputs 'Buddy'.
      3. Final Answer:

        Buddy -> Option D
      4. Quick Check:

        Print attribute value = Buddy [OK]
      Hint: Print object.attribute to see stored value [OK]
      Common Mistakes:
      • Expecting class name instead of attribute value
      • Confusing object name with attribute
      • Thinking it causes an error
      4. Find the error in this code that tries to create a public attribute age:
      class Person:
          def __init__(self, age):
              age = age
      
      p = Person(30)
      print(p.age)
      medium
      A. The attribute should be assigned to self.age, not age
      B. The print statement should be print(age)
      C. The constructor is missing a return statement
      D. The class name should be lowercase

      Solution

      1. Step 1: Check attribute assignment

        Assigning age = age only creates a local variable, not an attribute of the object.
      2. Step 2: Correct attribute assignment

        It should be self.age = age to create a public attribute accessible outside.
      3. Final Answer:

        The attribute should be assigned to self.age, not age -> Option A
      4. Quick Check:

        Use self.attribute = value to create public attribute [OK]
      Hint: Always assign attributes to self.attribute inside __init__ [OK]
      Common Mistakes:
      • Assigning to local variable instead of self.attribute
      • Trying to print variable not attached to object
      • Thinking constructor needs return
      5. You want to create a class Car that stores the public attributes make and year. Which code correctly creates these attributes and allows access to them?
      hard
      A. class Car: def __init__(self, make, year): self.make = make year = self.year my_car = Car('Toyota', 2020) print(my_car.make, my_car.year)
      B. class Car: def __init__(self, make, year): make = self.make year = self.year my_car = Car('Toyota', 2020) print(my_car.make, my_car.year)
      C. class Car: def __init__(self, make, year): self.make = make self.year = year my_car = Car('Toyota', 2020) print(my_car.make, my_car.year)
      D. class Car: def __init__(self, make, year): self.make = make self.year = year my_car = Car('Toyota', 2020) print(make, year)

      Solution

      1. Step 1: Check attribute assignments

        class Car: def __init__(self, make, year): self.make = make self.year = year my_car = Car('Toyota', 2020) print(my_car.make, my_car.year) correctly assigns self.make and self.year to the passed values.
      2. Step 2: Check attribute access

        class Car: def __init__(self, make, year): self.make = make self.year = year my_car = Car('Toyota', 2020) print(my_car.make, my_car.year) prints my_car.make and my_car.year, which are valid public attributes.
      3. Final Answer:

        class Car: def __init__(self, make, year): self.make = make self.year = year my_car = Car('Toyota', 2020) print(my_car.make, my_car.year) -> Option C
      4. Quick Check:

        Assign and access via self.attribute and object.attribute [OK]
      Hint: Assign attributes to self and access via object.attribute [OK]
      Common Mistakes:
      • Assigning attributes backwards (make = self.make)
      • Accessing attributes without object prefix
      • Mixing local variables with attributes