Attribute access; traditional

  • Direct access:
    my_object.attr1 = True
    a = my_object.attr1
    

  • get/set functions:
    class A:
        def set_attr1(attr1):
            self._attr1 = attr # underscore => non-public variable
            self._update(self._attr1)  # update internal data too
        ...
    
    my_object.set_attr1(True)
    
    a = my_object.get_attr1()
    
    Tedious to write! Properties are simpler...

    previousnexttable of contents