If you ever created a class in Python, you probably accessed it using dot notation (i.e. instance_name.attribute_name).
That’s python’s way of calling getattr by means of an alias:
class A:
var = 10
pass
a = A()
# this is how Python accesses attributes
getattr(a, 'var')
10
a.__getattribute__('var') # above is an alias for this
10
The most “pythonic” way of getting and setting attributes is using dot notation:
A.var = 11
print(A.var)
11
which is short for the dunder getattribute method