第7章 再谈抽象

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010819416/article/details/82321282

7.1 对象魔法

7.1.1 多态

7.1.2 多态和方法

7.1.3 封装

7.1.4 继承

7.2 类

7.2.1 类到底是声明

7.2.2 创建自定义类

# 自定义类

class Person:

    def set_name(self, name):
        self.name = name

    def get_name(self):
        return self.name

    def greet(self):
        print("Hello, world! I am {}.".format(self.name))
>>> p = Person()
>>> p.set_name('peter')
>>> p.get_name()
'peter'
>>> p.greet()
Hello, world! I am peter.
>>> 

7.2.3 属性、函数和方法

7.2.4 再谈隐藏
要让方法或属性成为私有的,让名称以两个下划线打头。

7.2.5 类的命名空间

7.2.6 指定超类

class Filter:

    def init(self):
        self.blocked = []

    def filter(self, sequence):
        return [x for x in sequence if x not in self.blocked]


class SPAMFilter(Filter):

    def init(self):
        self.blocked = ['SPAM']
>>> f = Filter()
>>> f.init()
>>> f.filter([1,2,3])
[1, 2, 3]
>>> s = SPAMFilter()
>>> s.init()
>>> s.filter(['SPAM','a','b'])
['a', 'b']
>>>

7.2.7 深入探讨继承

7.2.8 多个超类
逗号分隔

7.2.9 接口和内省

7.2.10 抽象基类

from abc import ABC,abstractmethod

class Talker(ABC):

    @abstractmethod
    def talk(self):
        pass

7.3 关于面向对象设计的一些思考

7.4 小结

猜你喜欢

转载自blog.csdn.net/u010819416/article/details/82321282