python自动化之路-day4.1

python面向对象

1.概述

面向过程:根据业务逻辑从上到下写代码

函数式:将某功能代码封装到函数中,日后变无需重复写代码,仅调用函数即可

面向对象:对函数进行分类和封装

面向过程式编程最易被初学者接受,其往往用一长段代码实现指定功能,开发过程最常见的操作就是粘贴复制,即:将之前实现的代码复制到现需功能处。

while  True
     if  cpu利用率 >  90 % :
         #发送邮件提醒
         连接邮箱服务器
         发送邮件
         关闭连接
 
     if  硬盘使用空间 >  90 % :
         #发送邮件提醒
         连接邮箱服务器
         发送邮件
         关闭连接
随着时间的推移,开始使用了函数式编程,增强代码的重用性和可读性。

def  发送邮件(内容)
     #发送邮件提醒
     连接邮箱服务器
     发送邮件
     关闭连接
 
while  True
 
     if  cpu利用率 >  90 % :
         发送邮件( 'CPU报警' )
 
     if  硬盘使用空间 >  90 % :
         发送邮件( '硬盘报警' )
新的编程方式:面向对象编程(object orientied programm ing)oop 

面向对象编程其实就是对“类”和“对象”的使用

类就是一个模板,模板中可以包含多个函数,函数里实现一些功能

对象则是根据模板创建的实例,通过实例对象可以执行类中的函数

面向对象几个核心特性:

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属性
通过self间接调用被封装的内容

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
综上所述:对于面向对象的封装来说,其实就是使用构造方法将内容封装到对象中,然后通过对对象直接或者self间接获取被封装的内容

继承:面向对象中的继承和现实生活中的继承相同,即:子可以继承父的内容。

对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类不仅继承父类而且不必--实现每个方法

注:除了子类和父类的称谓,你可能看过派生类和基类,叫法不同而已。

多态:

态是面向对象的一个重要特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值