面向对象编程简朴来讲就是基于对 类 和 对象 的运用,一切的代码都是经由过程类和对象来完成的编程就是面向对象编程!
面向对象的三大特征:封装、继续、多态
起首建立一个类
#运用class建立一个School类,类中有个student要领 class School: def student(self): pass a1=School()
一、封装
1、封装:将某些内容先封装到一个处所,比及须要的时刻再去挪用
class School: def __init__(self,name,age): #组织要领,建立对象是实行 self.name=name self.age=age#建立对象a1,a2a1=School("zhangsan",18) a2=School("lisi",18)
上面代码完成的就是封装的功用,把各自的name和age离别封装到了self的name和age属性中,就即是被封装到了对象a1和a2中
类中定义的函数叫做要领,带有__init__的函数称为组织要领,在建立a1,a2对象时会自动实行。
2、挪用:挪用有两种体式格局,经由过程对象直接挪用和经由过程self间接挪用
经由过程对象直接挪用
class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age))#建立对象a1,a2a1=School("zhangsan",18) a2=School("lisi",18) print a1.name,a1.age print a2.name,a2.age#实行效果: zhangsan 18 lisi 18
经由过程self间接挪用
class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age)) #建立对象a1,a2 a1=School("zhangsan",18) a2=School("lisi",18) #实行类中的要领时,经由过程self间接挪用被封装的内容 a1.student() a2.student() #实行效果: #name:zhangsan,age:18 #name:lisi,age:18
二、继续
1、继续:既派生类(子类)能够继续基类(父类)的要领,我们能够将多个类共有的要领提取到父类当中,如许子类仅需继续父类而没必要逐一完成每一个要领
在类名背面括号中写上另一个类,示意继续了谁人类
class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age)) def classroom(self): print("%s去课堂"%self.name) class SchoolA(School): #SchoolA继续School def __init__(self,name): self.name=name class SchoolB(SchoolA): #SchoolB继续SchoolA def __init__(self,name): self.name=name #建立对象a1 a1=SchoolA("zhangsan") a1.classroom() #建立对象a2 a2=SchoolB("lisi") a2.classroom() #实行效果: # zhangsan去课堂 # lisi去课堂
在上面代码中我们能够看到,在SchoolA和SchoolB中都没有classroom要领,但由于SchoolB继续了SchoolA,而SchoolA又继续了School,所以他们建立对象后都能
挪用School中的classroom要领。
2、多继续
在python中,类还能够继续多个类,在继续多个类时,他对类中的函数查找有两种体式格局
深度优先:类是典范类时,多继续情况下,会根据深度优先体式格局查找
广度优先:类是新式类时,多继续情况下,会根据广度优先体式格局查找
(在python3.x中)都默以为广度优先,但照样能够相识一下两个的区分,新式类:当前类或许基类继续了objiect类就叫新式类,否者就是典范类。
以上就是python怎样面向对象编程的细致内容,更多请关注ki4网别的相干文章!