#! /usr/bin/python

# critter.py - OOP example for penguinsUnbound demo

class critter(object):
    def __init__(self, cname="noname", ctype="unknown"):
        self.cname = cname
        self.ctype = ctype
        self.voice = ''
    
    def __str__(self):
        return 'I am a %s named %s' % (self.ctype, self.cname)
    
    def speak(self):
        if self.voice:
            print 'I am a %s named %s and I say "%s"' % (self.ctype, self.cname, self.voice)
        else:
            print "I am a %s named %s and I don't speak" % (self.ctype, self.cname)

c1 = critter(cname='Polly', ctype='Parrot')

print c1

c1.speak()

c1.voice = 'Polly wants a cracker'

c1.speak()