##动物大类
class Animal(object):
def __init__(self,s):
if not isinstance(s,str):
raise TypeError('s must be a string')
s = s.strip()
if s==None or s=='':
raise ValueError('s can\'t be None or \'\'')
self._name=s
@property
def name(self):
return self._name
@name.setter
def name(self,s):
if not isinstance(s, str):
raise TypeError('s must be a string')
s = s.strip()
if s == None or s == '':
raise ValueError('s can\'t be None or ''')
self._name = s
##鸟类和哺乳类
class Bird(Animal):
pass
class Mammal(Animal):
pass
##天空类,地面类
class Runnable(object):
def run(self):
print('My name\'s %s I can run' %self._name)
class Flyable(object):
def fly(self):
print('My name\'s %s I can fly' %self._name)
##狗类,蝙蝠类,鹦鹉类,鸵鸟类
class Dog(Mammal,Runnable):
pass
class Bat(Mammal,Flyable):
pass
class Parrot(Bird,Flyable):
pass
class Ostrich(Bird,Runnable):
pass