Python

耗尽温柔 提交于 2019-12-21 12:05:06

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一、概述

1、 面向过程编程

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

while True:
    if cpu利用率 > 90%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接
  
    if 硬盘使用空间 > 90%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接
  
    if 内存占用 > 80%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接

2、 函数式编程

将具有相同功能的代码写到一个函数中,当需要时,调用、执行这个函数

def 发送邮件(内容)
    #发送邮件提醒
    连接邮箱服务器
    发送邮件
    关闭连接
  
while True:
  
    if cpu利用率 > 90%:
        发送邮件('CPU报警')
  
    if 硬盘使用空间 > 90%:
        发送邮件('硬盘报警')
  
    if 内存占用 > 80%:
        发送邮件('内存报警')

3、 面向对象编程

面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)

面向对象编程是一种编程方式,此编程方式需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。

  • 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能
  • 对象则是根据模板创建的实例,通过实例对象可以执行类中的函数
# 创建类
class Foo:
    # 创建类中的函数
    def bar(self):
        # do something
        print("bar")
    
    def hello(self, name):
        self.name = name
        print("My name is :%self.name")
# 根据类Foo创建对象obj
obj = Foo()
obj.bar()                # 执行bar方法
obj.hello("Python")  # 执行hello方法

执行方式:

  • 面向对象:【创建对象】【通过对象执行方法】
  • 函数编程:【执行函数】
    总结:函数式的应用场景 --> 各个函数之间是独立且无共用的数据

二、面向对象三大特性

面向对象的三大特性是指:封装、继承和多态。

1、 封装

封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。所以,在使用面向对象的封装特性时,需要:

  • 将内容封装到某处
  • 从某处调用被封装的内容
    **第一步: 将内容封装到某处 **
# 创建类
class Foo:
    # __init__ 称为构造方法,在根据类创建对象时自动执行
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 创建类中的函数
    def hello(self):
        # do something
        print("hello %s" % self.name)
# 根据类Foo创建对象
obj1 = Foo("Python", 8)  # 将Python 和 8 分别封装到obj1(self)的name和age属性中
obj2 = Foo("Linux", 18)  # Linux 和 18 分别封装到obj1(self)的name和age属性中

第二步:从某处调用被封装的内容 调用被封装的内容时,有两种情况:

  • 通过对象直接调用方法的属性
print(obj1.name)
print(obj1.age)
  • 通过对象调用类的方法,再通过self调用属性
print(obj1.hello())
print(obj2.hello())

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

2、继承

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

  • 猫可以:喵喵叫、吃、喝、拉、撒
  • 狗可以:汪汪叫、吃、喝、拉、撒
  • 猫、狗都具有(继承了)动物的基本属性吃、喝、拉、撒
# 代码实例
class Animal:
    def eat(self):
        print( "%s 吃 " % self.name)

    def drink(self):
        print( "%s 喝 " % self.name) 

    def shit(self):
        print( "%s 拉 " % self.name) 

    def pee(self):
        print( "%s 撒 " % self.name) 


class Cat(Animal):
    def __init__(self, name):
        self.name = name
        self.breed = '猫'

    def cry(self):
        print('喵喵叫') 


class Dog(Animal):
    def __init__(self, name):
        self.name = name
        self.breed = '狗'  

    def cry(self):
        print( '汪汪叫' )  

# ######### 执行 #########
c1 = Cat('小白家的小黑猫')
c1.eat()
c2 = Cat('小黑的小白猫')
c2.drink()
d1 = Dog('胖子家的小瘦狗')
d1.eat()

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

多继承相关

  • 新式类和经典类

当前类或者父类继承了object类,则该类为新式类,否则为经典类。

class C1:  # C1是经典类
    pass


class C2(C1):  # C2是经典类
    pass


class N1(object):  # N1是新式类
    pass
    
    
class N2(N1):  # N2是新式类
    pass
  • 深度优先和广度优先

输入图片说明

查找方法: 新式类-->广度优先,经典类-->深度优先

三、多态

多态即多种形态 Pyhon不支持多态并且也用不到多态,多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚“鸭子类型”。

总结

以上就是本节对于面向对象初级知识的介绍,总结如下:

  • 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用
  • 类 是一个模板,模板中包装了多个“函数”供使用
  • 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数
  • 面向对象三大特性:封装、继承和多态
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!