I'm coming from a Java/C# background and I don't understand the reason for having global variables outside the init function (method?).
I'm used to having constructors that initialize as many global variables as needed that are declared above and outside my constructor.
In Python it seems that global variables can be created both in and out of init, the only difference being that variables inside init need self. and all objects of the class have a common value for variables outside init. So each init variable value is unique to the class object, and each global var value outside init is common to every object.
Is this correct? I read init is not a constructor in the C# sense, but it pretty much is the same functionally. Why would I want this different behavior?