zoukankan      html  css  js  c++  java
  • 面向对象 初级

    • 面向过程:根据业务逻辑从上到下写垒代码
    • 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
    • 面向对象:对函数进行分类和封装,让开发“更快更好更强...”

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

     1 while True:
     2     if cpu利用率 > 90%:
     3         #发送邮件提醒
     4         连接邮箱服务器
     5         发送邮件
     6         关闭连接
     7  
     8     if 硬盘使用空间 > 90%:
     9         #发送邮件提醒
    10         连接邮箱服务器
    11         发送邮件
    12         关闭连接
    13  
    14     if 内存占用 > 80%:
    15         #发送邮件提醒
    16         连接邮箱服务器
    17         发送邮件
    18         关闭连接
    View Code

     随着时间的推移,开始使用了函数式编程,增强代码的重用性和可读性,就变成了这样:

     1 def 发送邮件(内容)
     2     #发送邮件提醒
     3     连接邮箱服务器
     4     发送邮件
     5     关闭连接
     6  
     7 while True:
     8  
     9     if cpu利用率 > 90%:
    10         发送邮件('CPU报警')
    11  
    12     if 硬盘使用空间 > 90%:
    13         发送邮件('硬盘报警')
    14  
    15     if 内存占用 > 80%:
    16         发送邮件('内存报警') 
    View Code

    今天我们来学习一种新的编程方式:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)
    注:Java和C#来说只支持面向对象编程,而python比较灵活即支持面向对象编程也支持函数式编程 

    创建类和对象                                                                                     

    class Foo:

      pass

    class:关键字

    调用:obj = Foo()

     

    面向对象三大特性

     

    一. 封装

    1. 数据封装   2.将相关功能封装

    1 class Foo:
    2   def __init__(self,name,age): #数据封装到类中 
    3     self.name = name
    4     self.age = age
    5   def  detail(self):#功能封装到类中
    6     print(self.age)7 obj = Foo("alex",18)

     调用

    1.直接调用&间接调用

    print(obj.age)

    obj.detail()

    二.继承

    多继承:

    1.经典类 python2或者继承object的类

    当类是经典类时,多继承情况下,会按照深度优先方式查找

    2.新式类 python3

    当类是新式类时,多继承情况下,会按照广度优先方式查找(严格意义上使用的是C3算法)

    作用:提高代码的复用性

    三.多态

    python原生支持多态,崇尚鸭子模型

  • 相关阅读:
    Python操作Redis的实例(七)
    Python操作Redis(六)
    Redis的数据类型之set集合,zset有序集合类型操作 (五)
    Redis的数据类型之list列表类型操作 (四)
    Redis的数据类型之hash哈希类型操作 (三)
    Redis的数据类型之String字符串类型操作(二)
    Redis基础介绍以及编译安装过程(一)
    python操作IP---IPy模块
    安装cnpm报错
    vue-cli · Failed to download repo vuejs-templates/webpack: connect ECONNREF
  • 原文地址:https://www.cnblogs.com/kxuan/p/14066812.html
Copyright © 2011-2022 走看看