First off, I have a bad habit of taking apart the code examples in the book I'm learning from and putting it together and taking it apart so I can understand it. If I don't understand it I'm really shitty about using it correctly--this is probably why I keep on dropping my stupid colons. This normally good habit is a bad thing because I'm not advanced enough to know what I'm pulling apart and it made me ragequit for a while.
Right now I'm just taking it as structural, white spaces define blocks (and despite that you still need colons), and when defining things in classes you need to have have (self) up there along with your other variables.
I understand there's actually a technical reason for it, Guido van Rossum actually blogged about why, and my friend says it makes sense even if he doesn't like it. However, I can't quite grok it right.
What I get from it that (self) is for when you actually get to put some data into your method, because some stuff is static and some is dynamic.
But when asking for other variables, (self, x, y), that's only asking for 2 data entries, so it's not asking for self? And I know you can't just put self in, and no x, if you want to manipulate some forms of data, like a basic print string.
Lost newb is lost.