Teach snoopy and scooby doo how to bark using object methods. 
Currently only snoopy can bark and not scooby doo. 

```python
snoopy.bark() #return "Woof"
scoobydoo.bark() #undefined
```
Use method prototypes to enable all Dogs to bark.

Difficulty: introductory

Starter code:

def __init__(self, breed):
	

Solutions:
class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self):
    return "Woof"

snoopy = Dog("Beagle")

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    self.bark = lambda: "Woof"
    
snoopy = Dog("Beagle")

scoobydoo = Dog("Great Dane")

class Dog ():
    def __init__(self, breed):
        self.breed = breed
    
    @staticmethod
    def bark():
        return "Woof"
    
snoopy = Dog("Beagle")

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    self.bark = lambda: "Woof"

snoopy, scoobydoo = Dog("Beagle"), Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self):
      return "Woof"

snoopy = Dog("nn")
scoobydoo = Dog("nn")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")

Dog.bark = lambda self: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"

class Dog():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")

Dog.bark = lambda *args: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self): 
      if self.breed in ["Beagle", "Great Dane"]: 
          return 'Woof'
    
snoopy = Dog("Beagle")
snoopy.bark = lambda: "Woof"
scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")
snoopy.bark = scoobydoo.bark = lambda: "Woof"

class Dog:
    """ Animal: Dog. """

    def __init__(self, breed: str):
        """ Prepare data. """
        self.breed = breed
        self.bark = lambda: "Woof"

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

class Dog ():
    def __init__(self, breed):
        self.breed = breed
    def bark(*a):
        return "Woof"
    
snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

class Dog():
    def __init__(self, breed):
        self.breed = breed
    def bark(name):
        return "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
    def __init__(self, breed):
        self.breed = breed
        
    def bark(self):
        return "Woof"

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

#snoopy.bark = lambda: "Woof"  :P



class Dog():
  def __init__(self, breed):
    self.breed = breed
  
  def bark(self, bark="Woof"):
      self.bark = bark
    
snoopy = Dog("Beagle")
snoopy.bark = lambda: "Woof"
scoobydoo = Dog("Great Dane")
scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
  def bark(self):
      return "Woof"
    

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

print(Dog.bark(scoobydoo))

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
  def bark(self):
      return "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")
print(scoobydoo.bark())

class Dog ():
    def __init__(self, breed):
        self.breed = breed
    def bark(self):
        return 'Woof'
        
snoopy = Dog('Test')
scoobydoo = Dog('Test')
            


class Dog():
    def __init__(self, breed):
        self.breed = breed
    def bark(self):
        return self.breed
    

snoopy = Dog("Woof")

scoobydoo = Dog("Woof")

class Dog:
    def __init__(self, breed: str):
        self.breed = breed

    @staticmethod
    def bark() -> str:
        return "Woof"


snoopy, scoobydoo = Dog("Beagle"), Dog("Great Dane")


class Dog(object):
    def __init__(self, breed):
        self.breed = breed
        self.bark = lambda: 'Woof'
    def bark(self):
        return 'Woof'

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")
scoobydoo = Dog("rogling")

snoopy.bark = lambda: "Woof"

scoobydoo.bark = lambda: "Woof"
# Flez


class Dog ():
  def __init__(self, breed):
    self.breed = breed      
  def bark(self):
      return "Woof"
        
snoopy = Dog("Beagle")
scoobydoo = Dog("yourmom")





class Dog:
  def __init__(self, breed):
    self.breed = breed
  
  # Troll
  def bark(self):
      return 'Woof'

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")



class Dog ():
    def __init__(self, breed):
        self.name = breed
    def bark(self):
        return "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self, bark='Woof'):
      return bark

    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
  def bark(self):
      if self.breed == 'Beagle':
          return "Woof"
      else:
          return "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog:
    def __init__(self, breed):
        self.breed = breed
    def bark(self):
        return "Woof"

snoopy = Dog("Code")
scoobydoo = Dog("Wars")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")
snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")
scoobydoo.bark= lambda: "Woof"
  #I solved this Kata on  8/17/2019  12:46 AM...#Hussam'sCodingDiary


class Dog ():
  def __init__(self, breed):
    self.breed = breed
#   ^_^
  def bark(self):
      return 'Woof'
    

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

class Dog ():
    bark = None

    def __init__(self, breed):
        self.breed = breed
    
    @property
    def bark(self):
        return Dog.bark
        
    @bark.setter
    def bark(self, func):
        Dog.bark = func  
    
snoopy = Dog("Beagle")

snoopy.bark = lambda x: "Woof"

scoobydoo = Dog("Great Dane")

class Dog:

    def __init__(self, breed):
        self.breed = breed
        
    def bark(self):
        return "Woof"
        
        
class Snoopy(Dog):

    def __init__(self, breed):
        Dog.__init__(self, breed)

    def bark(self):
        return self.bark
            
        
        
class Scooby(Dog):

    def __init__(self, breed):
        Dog.__init__(self, breed)

    def bark(self):
        pass #super(Dog, self).bark()


snoopy = Dog("Beagle")
snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Woof")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Woof")

scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, bark):
    self.bark = "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"

class Dog ():
    def __init__(self, breed):
        self.breed = breed
    
#     def bark():
#         return 'Woof'
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, breed,bark):
    self.breed = breed
    self.bark = bark

snoopy = Dog("Beagle",'Woof')

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane",'Woof')

scoobydoo.bark =  lambda : 'Woof'

class Dog ():
  def __init__(self, breed:str):
    self.breed = breed
  
  def bark(self) ->str:
      return "Woof"

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed, bark):
    self.breed = breed
  def __init__(self, bark): 
    self.bark = bark

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"

scoobydoo.platz = lambda: "Platz"

class Dog ():
  def __init__(self, breed):
    self.breed = breed

  def bark(self):
    return self.breed

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Woof")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
  def bark():
  
      return self.breed
    
    
snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")
scoobydoo.bark = lambda: "Woof"


class Dog ():
  def __init__(self, breed, sound):
    self.breed = breed
    self.sound = sound
  def bark(self):
      return self.sound
    

snoopy = Dog("Beagle", "Woof")

scoobydoo = Dog("Great Dane", "Woof")


class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def breed(self):  
    return self.breed
snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda:"Woof"

class Dog ():
  def __init__(self, breed):
    self.breed = breed

  def bark(woof):
    return "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
  def bark(cls):
      return "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class BigDog ():
  def __init__(self, breed):
    self.breed = breed
    
class Dog (BigDog):
  
  @staticmethod
  def bark():
      return "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self): 
      return "Woof"

# Instantiate two Dog Objects
snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

# Call bark() method
snoopy.bark()
scoobydoo.bark()

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

Dog.bark = staticmethod(snoopy.bark)

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark (self):
    s=''
    for i in self.breed:
        s = 'Woof'
    return s
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")
scoobydoo.bark = snoopy.bark = lambda: "Woof"



class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
  def bark(self):
      if self.breed == 'Beagle' or self.breed == "Great Dane":
          return "Woof"
      else:
          return "undefined"
    

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self):
    return self

snoopy = Dog("Beagle")
snoopy.bark = lambda: "Woof"
scoobydoo = Dog("Great Dane")
scoobydoo.bark = lambda: "Woof"

class Dog ():
  _bark = "Woof"
  
  def __init__(self, breed):
    self.breed = breed
  def bark(cls):
    return cls._bark
      

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
    def __init__(self, breed):
        self.breed = breed

snoopy = Dog("Beagle")
snoopy.bark = lambda: "Woof"
scoobydoo = Dog("Beagle")
scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    self.bark = lambda: "Woof"
    
snoopy = Dog("Husky")

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self, breed =''):
    return 'Woof'
    
snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
    def __init__(self, breed):
        self.breed = breed
        self.bark = lambda: "Woof"
    
snoopy = Dog("Beagle")

scoobydoo = Dog("Great Dane")

scoobydoo = Dog("Great Dane")

class Dog ():
    def __init__(self, breed):
        self.breed = breed
    def bark(self, bark):
        self.bark = bark

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"
#Not hard at all


# dog the class
class Dog ():

# setting self to breed
  def __init__(self, breed):
    self.breed = breed
    self.bark = lambda: "Woof"
    
snoopy = Dog("Beagle")

scoobydoo = Dog("Great Dane")


class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self):
      return "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark()

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
  @classmethod
  def bark(self):
      return "Woof"

  

snoopy = Dog("Beagle")

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
  def bark(inp):
    return "Woof"

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

class Dog(object):
    def __init__(self, breed):
        self.breed = breed

    def bark(self):
        return 'Woof'

snoopy, scoobydoo = Dog("Beagle"), Dog("Great Dane")


class Dog ():
  def __init__(self, bark):
    self.bark = bark
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")
scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
  def bark(self):
      bark = 'Woof'
      self.bark = bark
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self):
      return lambda: "Woof"

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(s):
    return 'Woof'
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

class Dog(Dog):
    def bark(self):
        return "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    self.message = "Woof"
    
  def bark(self):
      return self.message
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
    

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

snoopy.bark = lambda: "Woof"
scoobydoo.bark = lambda: "Woof"




snoopy.bark()
scoobydoo.bark()

"""
The instructions say to use method prototypes which don't exist in Python.
Instead, we could monkey patch the internal __dict__ of the parent class, like
the example in [1], but this isn't very Pythonic, so I've subclassed instead.

[1]: http://stackoverflow.com/a/33033631/149428
"""

class Dog(object):

    def __init__(self, breed):
        self.breed = breed


class BarkingDog(Dog):

    def bark(self):
        return 'Woof'


snoopy = BarkingDog('Beagle')
scoobydoo = BarkingDog('Great Dane')

class Dog ():
    def __init__(self, breed, sound):
        self.breed = breed
        self.bark = sound

def sound(): return 'Woof'

snoopy = Dog("Beagle", sound)
scoobydoo = Dog("Great Dane", sound)

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")

Dog.bark = lambda x: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
  def bark(self):
      return "".join('Woof')
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
    def __init__(self, breed):
        self.breed = breed
    
    def bark(*sound):
        return "Woof"

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark():
      return "Woof"

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  
  def bark(arg):
      return "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self):
    return "Woof"


snoopy = Dog("Beagle")

#snoopy.bark #= lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self):
      return "Woof"

snoopy = Dog("Beagle")

# snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")
snoopy.bark()
scoobydoo.bark()

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self): 
    return 'Woof'

snoopy = Dog('snoopy')
scoobydoo = Dog('scoobydoo')

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

#Just using lambda to make a mini function

scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(name):
      return "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    self.bark  

  def bark(self):
    return "Woof"

snoopy = Dog("Beagle")

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
    
  def bark(self, bak = "Woof"):
      self.bak = bak
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(n):
     return "Woof"
snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed, sound="Woof"):
    self.breed = breed
    self.sound = sound
    
  def bark(self):
    return self.sound
    
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(sound):
    print(sound)
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"


class Dog ():
  def __init__(self, breed):
    self.breed = breed
  def bark(self, woof):
    print("Woof")  

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda:"Woof"

class Dog(object):
    def bark(self):
        return "Woof"
    #Dog.bark = bark
    def __init__(self, breed):
        self.breed = breed
    
#Dog.bark = bark
snoopy = Dog("Beagle")


scoobydoo = Dog("Great Dane")


class Dog ():
  def __init__(self, breed):
    self.breed = breed
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = Dog = lambda: "Woof"

class Dog ():
  bark = "Woof"
  def __init__(self, breed):
    self.breed = breed
  def bark(self):
      return "Woof"
      
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

class Dog:
    def __init__(self, name):
        pass
    def bark(self):
        return 'Woof'

snoopy = Dog("Beagle")
scoobydoo = Dog("Great Dane")



class Dog ():
  def __init__(self, breed):
    self.breed = breed
    self.bark = "Woof"
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"

class Dog ():    
    bark = ""
    def __init__(self, breed):
        self.breed = breed
    

snoopy = Dog("Beagle")

snoopy.bark = lambda: "Woof"

scoobydoo = Dog("Great Dane")

scoobydoo.bark = lambda: "Woof"