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)

 

posted @ 2018-08-27 15:24  背锅文  阅读(266)  评论(0编辑  收藏  举报