You can add attributes to any object that has a __dict__.
x = object() doesnt't have it for example. Strings and other simple objects also don't have it Classes using __slots__ also do not have it. Classes defined with class have it unless the latter applies