版权声明:本文为博主原创文章,未经博主允许不得转载。 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 小结