python 面向对象(三大特性)
python 面向对象(初级)
(思维导图 ↑↑↑↑↑)
概述:
面向过程:根据业务逻辑从上到下垒代码.
函数式:将某功能代码封装至函数中,日后便无需重复编写,仅调用函数即可
面向对象:对函数进行分类和封装,让开发"更快更好更强..."
创建类和对象:
面向对象编程是一种编程方式,此编程方式的落地需要使用"类"和"对象"来实现,所以,面向对象编程其实就是对"类"和"对象"的使用.
class Foo: # 创建类中的函数 def Bar(self): print('bar') def Hello(self,name): print('我叫%s'% name) # 根据类Foo创建对象obj obj = Foo() obj.Bar() # 执行Bar方法 obj.Hello('裴杰') # 执行Hello方法
面向对象三大特性:
一.封装
封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容.所以,在使用面向对象的封装特性时,需要:
-将内容封装到某处
-从某处调用被封装的内容
# 创建类 class Foo: def __init__(self,name,age): # 构造方法,根据类的创建对象时自动执行. self.name = name self.age = age def func(self): print('姓名:%s,年龄:%s' % (self.name,self.age)) # 根据Foo创建对象 # 自动执行Foo类的 __init__ 方法 obj1 = Foo('裴杰',80) obj2 = Foo('张博文',18) obj1.func() obj2.func()
二.继承
继承,面向对象中的继承和实现生活中的相同,即:子可以继承父的内容.
例如:
class Animal: def eat(self): print('%s 吃 ' % self.name) def drink(self): print('%s 喝 ' % self.name) def shit(self): print('%s 拉 ' % self.name) def pee(self): print('%s 撒 ' % self.name) class Cat(Animal): def __init__(self,name): self.name = name self.breed = '猫' def cry(self): print('喵喵叫') class Dog(Animal): def __init__(self,name): self.name = name self.breed = '狗' def cry(self): print('汪汪叫') ######## 执行 ######### c1 = Cat('裴杰家的小黑猫') c1.eat() c2 = Cat('裴杰家的小白猫') c2.drink() d1 = Dog('李承家的小傻裴') d1.eat()
三.多态
python崇尚"鸭子类型"
class F1: pass class S1(F1): def show(self): print('S1.show') class S2(F1): def show(self): print('S2.show') def Func(obj): print(obj.show()) s1_obj = S1() Func(s1_obj) s2_obj = S2() Func(s2_obj)