class Animal:
    voice = '...'

def speak(self):
    return "A %s Says '%s'" % (self.__class__.__name__, self.voice)


class Dog(Animal):
    voice = 'Bark, Bark'


class Duck(Animal):
    voice = 'Quack, Quack'
print(Dog().speak())
print(Duck().speak())
Avoid using global without confusing new programming students in Python?