Python类与继承

来源:互联网 发布:cms推荐 编辑:程序博客网 时间:2024/05/18 02:52

类与继承


继承一个类


class Person(object):    def __init__(self, name, gender):        self.name = name        self.gender = genderclass Teacher(Person):    def __init__(self, name, gender, course):        super(Teacher,self).__init__(name,gender)        self.course = courset = Teacher('Alice', 'Female', 'English')print t.nameprint t.course




判断类型


class Person(object):    def __init__(self, name, gender):        self.name = name        self.gender = genderclass Student(Person):    def __init__(self, name, gender, score):        super(Student, self).__init__(name, gender)        self.score = scoreclass Teacher(Person):    def __init__(self, name, gender, course):        super(Teacher, self).__init__(name, gender)        self.course = courset = Teacher('Alice', 'Female', 'English')print isinstance(t,Person)print isinstance(t,Student)print isinstance(t,Teacher)print isinstance(t,object)




多态



import jsonclass Students(object):    def read(self):        return r'["Tim","Bob","Alice"]'s = Students()print json.load(s)




多重继承


class Person(object):    passclass Student(Person):    passclass Teacher(Person):    passclass SkillMixin(object):    passclass BasketballMixin(SkillMixin):    def skill(self):        return 'basketball'class FootballMixin(SkillMixin):    def skill(self):        return 'football'class BStudent(Student,BasketballMixin):    passclass FTeacher(Teacher,FootballMixin):    passs = BStudent()print s.skill()t = FTeacher()print t.skill()



获取对象的信息


type() 获取对象的类型
dir() 获取对象的所有属性

class Person(object):    def __init__(self, name, gender, **kw):        self.name = name        self.gender = gender        for k,v in kw.iteritems():            setattr(self,k,v)p = Person('Bob', 'Male', age=18, course='Python')setattr(p,'score',90)print getattr(p,'score')print p.ageprint p.course


0 0
原创粉丝点击