一、OOP
oop就是代码的重用,通过分解代码,最小化代码的冗余以及对现存的代码进行定制来编写程序;OOP模型中有两种对象,类对象和实例对象。类对象提供默认行为,是生产实例对象的工厂;类对象和实例对象都有各自命名空间。
二、python类的主要特性
· class语句创建类对象并将其赋值给变量名
· class语句内的顶层赋值语句会创建类的属性
· 类属性提供对象的状态和行为
三、python实例对象的主要特性
· 每次类调用时,都会创建并返回新的实例对象
· 每个实例对象继承类的属性并获得了自己的命名空间
· 每个实例对象通过构造方法获得每个实例自己的属性
四、创建类和实例对象-类的封装
封装,是将对象的数据与操作数据的方法相结合,通过方法将对象的数据与实现细节保护起来,就称为封装。外界只能通过对象的方法访问对象,因此封装同时也实现了对象的数据隐藏
class Person():
#类的属性--静态属性
country="China"
#封装--初始化方法
def __init__(self,*args):
self.name=args[0]
self.age=args[1]
self.aggr=args[2]
self.sex=args[3]
#方法
def walk(self,n):
print("%szoule%sbu"%(self.name,n))
#调用类创建实例对象,自动执行构造方法__init__
jonny=Person('jonny',11,23,'man')
#实例对象调用类的方法
jonny.walk(10)
#实例对象调用类的属性
print(jonny.country)
五、类的继承
单继承
类可以通过继承进行定制;类的继承丰富了软件的层级,在层级较低的地方覆盖现有的属性,让其行为特定化。 在python中,实例对象从类中继承,而类继承于超类 · 超类写在类开头的括号中 · 类从其超类中继承属性 · 实例会继承所有可读取类的属性 · 每次实例对象的属性调用都会进行类树搜索 · 逻辑的修改是通过创建子类,而不是修改超类
#创建父类---经典类
class a():
a1="11"
#创建子类,继承父类a
class b(a):
b1="22"
#调用父类的属性
print(b.a1)
以上的例子中父类是经典类,因为父类未继承object类;继承object类的父类是新式类
#创建父类---新式类
class a(object):
a1="11"
#创建子类,继承父类a
class b(a):
b1="22"
#调用父类的属性
print(b.a1)
在继承中,父类是经典类那么子类就是经典类;父类是新式类,子类就是新式类
多继承
python支持继承多个类,那么在继承父类的属性和方法时改怎么找呢?
class D(object):
def display(self):
print('D.display')
class C(D):
def display(self):
print('C.display')
class B(D):
def display(self):
print('B.display')
class A(B,C):
def display(self):
print('A.display')
a=A()
a.display()
执行display方法时,查找顺序为 A--B--C--D

六、类的多态
类的多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。
class Person():
def display(self):
pass
class Man(Person):
def display(self):
print("man")
class Woman(Person):
def display(self):
print("woman")
def func(obj):
obj.display()
#实例化对象
man1=Man()
woman1=Woman()
#多态
func(man1)
func(woman1) 来源:http://www./content-1-102401.html
|