python基础_第七章_函数进阶

自定义对象

1. 对象(python都有,你有没有)

多态
这大致意味着即便你不知道变量指向的是哪种对象,也能够对其执行操作,且操作的行为将随对象所属的类型(类)而异。

封装
封装(encapsulation)指的是向外部隐藏不必要的细节。

2. 类

每个对象都属于特定的类,并被称为该类的实例。例如,如果你在窗外看到一只鸟,这只鸟就是“鸟类”的一个实例。鸟类是一个非常通用(抽象)的类。

创建自定义类
被调用时会被第一个传入的参数就是self

class Person:
	def set_name(self, name):
		self.name = name
	def get_name(self):
		return self.name
	def greet(self):
		print("Hello, world! I'm {}.".format(self.name))

类的命名空间
下面两条语句大致等价:

def foo(x): return x * x
foo = lambda x: x * x

在 class 语句中定义的代码都是在一个特殊的命名空间(类的命名空间)内执行的,而类的所有成员都可访问这个命名空间。

继承
要确定一个类是否是另一个类的子类,可使用内置方法 issubclass 。

>>> issubclass(SPAMFilter, Filter)
True
>>> issubclass(Filter, SPAMFilter)
False

抽象基类
Python通过引入模块 abc 提供了官方解决方案。这个模块为所谓的抽象基类提供了支持。一般而言,抽象类是不能(至少是不应该)实例化的类,其职责是定义子类应实
现的一组抽象方法。下面是一个简单的示例:

from abc import ABC, abstractmethod
class Talker(ABC):
@abstractmethod #
def talk(self):
pass

形如 @this 的东西被称为装饰器,其用法将在第9章详细介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值