面向对象2
2018-06-17 23:34:47来源:未知 阅读 ()
类的继承
1 class person(object): 2 def __init__(self,name,age): 3 self.name = name 4 self.age = age 5 6 def info(self): 7 print("the person's name is %s age is %d"%(self.name, self.age)) 8 9 class yello_person(person): #继承person类 10 def __init__(self, name, age, level): 11 person.__init__(self, name, age) #构造函数先继承父类,自己再增加属性参数 12 self.level = level 13 14 def show_level(self): 15 print("the person %s level is %d"%(self.name, self.level)) 16 17 y1 = yello_person('zsq', 28, 15) 18 y1.info() #使用继承父类的方法 19 y1.show_level() #使用子类自己的方法
上面代码中yello_person继承了person父类。
子类中构造函数先对父类的构造函数进行继承;然后加上自己的特有属性。
18,19行示例如何使用对象分别调用父类和子类的方法
1 class SchoolMember(object): 2 Member = 0 3 def __init__(self, name, age): 4 self.name = name 5 self.age = age 6 SchoolMember.regist(self) #构造函数中直接调用注册方法,给成员数量加1 7 def regist(self): 8 SchoolMember.Member += 1 #操作公有属性 9 10 def display(self): #打印对象所有属性的方法 11 print('%s info is--'%self.name) 12 for k,v in self.__dict__.items(): 13 print('\t', k, '\t',v) 14 print('end ---') 15 16 def __del__(self): #析构函数,在手动删除某个对象时会对该对象执行。或者整个程序结束时会对所有对象执行,此程序会在程序末尾打印。 17 print('开除了%s'%self.name) 18 19 class Teacher(SchoolMember): 20 ''' 21 定义Teacher子类,在初始化时自动完成注册功能。在继承父类基础上增加自己的属性以及方法 22 ''' 23 def __init__(self, name, age, salay, course): 24 SchoolMember.__init__(self, name, age) 25 self.salary = salay 26 self.couesr = course 27 def teaching(self): 28 print("%s teaching %s"%(self.name, self.couesr)) 29 30 class Student(SchoolMember): 31 def __init__(self, name, age, tuition ): 32 SchoolMember.__init__(self, name, age) 33 self.tuition = tuition 34 def tuition(self): 35 print('%s pay money %d for study'%(self.name, self.tuition)) 36 37 38 t1 = Teacher('zsq', 28, 15000, "cloud_compute") 39 t1.teaching() #调用子类方法 40 t1.display() #调用父类方法 41 print(SchoolMember.Member) #打印学校成员,在对象初始化时自动加1
上面代码中6行示例如何在构造函数中操作公有属性,实现类似全局计数功能。
10行定义的方法示例如何在父类中打印对象的所有属性
多态
统一的调用接口,对不同对象有不同的处理逻辑。
1 class Animal(object): 2 def talk(self): 3 print('this is father class') 4 5 class Dog(Animal): 6 def talk(self): 7 print("旺旺旺") 8 9 class Cat(Animal): 10 def talk(self): 11 print("喵喵喵") 12 13 d1 = Dog() 14 c1 = Cat() 15 def animal_talk(obj): #当前实现统一接口调用不同对象产生不同效果,即多态。可以使用示例函数作为过渡方案 16 obj.talk() #此处obj为具体的对象,调用对象的talk方法。即子类中重构以后的方法,来实现多态。 17 animal_talk(d1) 18 animal_talk(c1)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Python之对象持久化笔记 2019-08-13
- Python基础总结之初步认识---class类的继承(终)。第十六天 2019-08-13
- python之函数、面向对象 2019-08-13
- PYTHON类的继承 2019-07-24
- 母版和继承的使用以及组件的使用 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash