from what I understand of the
self.var_one = method(args)
var_one = method(args)
In most cases
self.foo is indeed redundant because you can just write
foo for the same effect, but in this case it is not and the
self is required.
var_one = method(args) will create a local variable called
var_one, it will not call any method or do anything else to
self.var_one = method(args) will call the method
self with the argument
Another case where the use of
self is non-optional would be if you want to pass it as an argument to a method, i.e.
some_method(self) - you can't do that without the