I'm new to Python - and just trying to better understand the logic behind certain things.
Why would I write this way (default variables are in __init__):  
class Dawg:
    def __init__(self):
        self.previousWord = ""
        self.root = DawgNode()
        self.uncheckedNodes = []
        self.minimizedNodes = {}
    def insert( self, word ):
        #...
    def finish( self ):
        #...
Instead of this:
class Dawg:
    previousWord = ""
    root = DawgNode()
    uncheckedNodes = []
    minimizedNodes = {}
    def insert( self, word ):
        #...
    def finish( self ):
        #...
I mean - why do I need to use __init__ -> if I can just as easily add default variables to a class directly?
 
     
    