Modifications are made so that they are more understandable.
With the code that you have, your problem is that you make the x and y variables refer to the class definition and not to the creation of objects, which, in my opinion, have now appeared as a problem in all discussions and posts.
x = exampleClass
Now means that x now points to a class definition. This is interesting because since you have attribute1 as an exampleClass variable, you can do this:
x.attribute1 = 3
Now, if you have done the following:
exampleClass.attribute1
Instead of seeing 0 as you originally installed it, you will see 3!
To create class objects, you need to do the following:
x = exampleClass() y = exampleClass()
Now both variables refer to new objects, each of which has its own attributes, so if you did this:
x.attribute1 = 219
Then you will find that y.attribute1 is not changed :) Using the class name and function is common in python as a reference to the definition. Therefore, be careful if you want to instantiate an object, do not forget to use parentheses, if you want to call a function, make sure you do it too, otherwise the use of this name is a reference to the definition.
I suggest you read the answer of Ned Batchelder, though (and others now), since you have to make instance variables this way with the init function, since it is much cleaner and more in line with the design standards that most follow.
But in general, since it inherits from the Object class, you can assume that executing it this way will create instances (with parentheses), etc., and therefore you can change the values ββof the object, since I believe that they should be variables instance, even without "self" ".