首页 技术 正文
技术 2022年11月14日
0 收藏 434 点赞 2,369 浏览 2622 个字

摘自https://www.cnblogs.com/evablogs/p/6724477.html

继承

12345678 class Person(object):    def __init__(self, name, gender):        self.name = name        self.gender = genderclass Student(Person):   def __init__(self, name, gender,score):                        #score属性是子类自己的属性        super(Student,self).__init__(name,gender)                 #super(子类名称,self).__init__(继承父类的属性1,属性2):初始化父类,继承Person父类的name和gender属性        self.score=score

除了从一个父类继承外,Python允许从多个父类继承,称为多重继承。

多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用。

12345678910111213141516171819202122232425262728293031323334353637 #哪类人class Person(object):    pass class Student(Person):    pass class Teacher(Person):    pass class SkillMixin(object):    pass #技能类class BasketballMixin(SkillMixin):    def skill(self):        return 'basketball' class FootballMixin(SkillMixin):    def skill(self):        return 'football' #拥有哪种技能的人的类型class BStudent(Student, BasketballMixin):                               #既是学生,又会打篮球的人,即继承学生类,也继承篮球技能类,多重继承    pass class FTeacher(Teacher, FootballMixin):    pass = BStudent()print s.skill() >>> basketball = FTeacher()print t.skill()>>> football

多态

12345678910111213141516171819202122232425262728293031323334353637 class Person(object):     def __init__(self,name):          self.name=name     def a(self):                                               #Person父类的a方法          return 'I am a Person,my name is %s' %self.nameclass Student(Person):      def __init__(self,name,age):           super(Student,self).__init__(name)           self.age=age      def a(self):                                              #Student子类的a方法          return 'I am a Student,my name is %s' %self.name   class Teacher(Person):      def __init__(self,name,score):           super(Teacher,self).__init__(name)           self.score=score      def a(self):                                              #Teacher子类的a方法          return 'I am a Teacher,my name is %s' %self.name   def show_a(x):                                                  #定义一个方法,用于接收x参数,返回每个类实例对象相对应的方法     print a()  p=Person('Bob')s=Student('Alice',12)t=Teacher('Lily',80)  结果:>>> show_a(p)I am a Person,my name is Bob >>> show_a(s)I am a Student,my name is Alice >>> show_a(t)I am a Teacher,my name is Lily 结果返回子类自己的方法,但当子类的方法找不到时会顺着子类找到父类相对应的方法

封装

将细节封装起来提供一个接口被访问,有效地保证了细节的安全。

123456789 class Person(object):      def __init__(self):           self.__name='a'     @property                                   #使用@property将一个方法name变成属性,可以直接.name访问      def name(self):                            #封装self.__name属性           return self.__name                    p1=Person()p1.name                                          #p1.name可以直接访问name方法
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,133
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,297