python面向对象
1.概述
面向过程:根据业务逻辑从上到下写代码
函数式:将某功能代码封装到函数中,日后变无需重复写代码,仅调用函数即可
面向对象:对函数进行分类和封装
面向过程式编程最易被初学者接受,其往往用一长段代码实现指定功能,开发过程最常见的操作就是粘贴复制,即:将之前实现的代码复制到现需功能处。
while
True
:
if
cpu利用率 >
90
%
:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
if
硬盘使用空间 >
90
%
:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
def
发送邮件(内容)
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
while
True
:
if
cpu利用率 >
90
%
:
发送邮件(
'CPU报警'
)
if
硬盘使用空间 >
90
%
:
发送邮件(
'硬盘报警'
)
面向对象编程其实就是对“类”和“对象”的使用
类就是一个模板,模板中可以包含多个函数,函数里实现一些功能
对象则是根据模板创建的实例,通过实例对象可以执行类中的函数
面向对象几个核心特性:
class 类
一个类即是对一类拥有相同属性的对象的抽象,蓝图,原形,在类中定义了这些对象的都具备的属性(variables(data)),共同方法
class是关键字,表示类
创建对象,类名称后加括号即可
ps:类中的函数第一个参数必须是self(详细见:类的三大特性 封装),类中定义的函数叫方法
# 创建类
class
Foo:
def
Bar(
self
):
print
'Bar'
def
Hello(
self
, name):
print
'i am %s'
%
name
# 根据类Foo创建对象obj
obj
=
Foo()
obj.Bar()
#执行Bar方法
obj.Hello(
'wupeiqi'
)
#执行Hello方法
- 面向对象:【创建对象】【通过对象执行方法】
- 函数编程:【执行函数】
封装:顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容,所以,在使用面向对象的封装时,需要:
- 将内容封装到某处
- 从某处调用被封装的内容
调用:
- 通过对象直接调用
- 通过self间接调用
class
Foo:
def
__init__(
self
, name, age):
self
.name
=
name
self
.age
=
age
obj1
=
Foo(
'wupeiqi'
,
18
)
print
obj1.name
# 直接调用obj1对象的name属性
print
obj1.age
# 直接调用obj1对象的age属性
obj2
=
Foo(
'alex'
,
73
)
print
obj2.name
# 直接调用obj2对象的name属性
print
obj2.age
# 直接调用obj2对象的age属性
class
Foo:
def
__init__(
self
, name, age):
self
.name
=
name
self
.age
=
age
def
detail(
self
):
print
self
.name
print
self
.age
obj1
=
Foo(
'wupeiqi'
,
18
)
obj1.detail()
# Python默认会将obj1传给self参数,即:obj1.detail(obj1),所以,此时方法内部的 self = obj1,即:self.name 是 wupeiqi ;self.age 是 18
继承:面向对象中的继承和现实生活中的继承相同,即:子可以继承父的内容。
对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类不仅继承父类而且不必--实现每个方法
注:除了子类和父类的称谓,你可能看过派生类和基类,叫法不同而已。
多态:
态是面向对象的一个重要特性