码迷,mamicode.com
首页 > 编程语言 > 详细

封装 | 继承 | 多态 | Python

时间:2017-11-11 13:01:55      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:bsp   fat   sel   rand   init   一个   函数   需要   __init__   

面对对象
1.封装
    # 什么是python中的封装?
    # 使用构造方法将内容封装到对象中,然后通过对象直接或者self间接获取被封装的内容;
    class Oop(object):
        def __init__(self):
            self.name = name
            self.age = age
        
        def get_attrs(self):
            print(self.name)
            print(self.age)
        
    obj = Oop(Mic, 18)
    # 直接获取
    print(obj.name, obj.age)
    # 间接获取
    obj.get_attrs()
附:函数式变成与面对对象变成之间有什么区别?
    # 如果要传入固定参数完成几个不同的事情,对于函数式,每次都要传入同样的参数,
    # 而OOP只需要将不同的事情作为方法写到一个类中,传入的参数保存到创建的对象里,
    # 只需要在对象实例化的时候传入参数,接着执行每一个方法都可以用self间接去取;
2.继承
    # 什么是继承?
    # 就是将多个类共有的方法,方法父类中,子类只需要继承父类,
    # 不需要每个方法在每个类中都写一次;
    # 多继承
    # 新式类与经典类的区别:
    1.经典类
        class Grandpa:
            def say(self):
                print(Grandpa)
        
        class Father(Grandpa):
            def say(self):
                print(Father)

        class Mother(Grandpa):
            def say(self):
                print(Mother)

        class Child(Father, Mother):
            def say(self):
                print(Child)
        # 在创建一个son对象之后,执行say()方法,先到Father类中找say()方法,
        # 找不到就到上一个父类Grandpa中找,找不到再开始从Mother类中找,
        # 再找不到就报错;
        son = Child()
        a.say()
    2.新式类
        # 代码与上面基本一致,只是将Grandpa:修改成:‘Grandpa(object):‘;
        # 执行顺序不同:Father-> Mother-> Granpa -> 报错;
3.多态
    # 什么是多态?什么是多态性?
    # 多态指的是同一事物的多种形态;
    # 多态性是指一种调用方法,不同执行效果;
    # 好处:不论对象怎么变,使用者不需要自己修改代码,都是同一形式调用执行;
    class Mic(object):
        def write():
            print(Mic)

    class Tom(object):
        def write():
            print(Tom)

    def exe_func(obj):
        obj.write()

    obj1 = Mic()
    obj2 = Tom()
    # 调用同一个函数,但是执行效果不同,即便修改了write方法,也不需要更换接口;
    exe_func(obj1)
    exe_func(obj2)

 

封装 | 继承 | 多态 | Python

标签:bsp   fat   sel   rand   init   一个   函数   需要   __init__   

原文地址:http://www.cnblogs.com/pymkl/p/7818528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!