美文网首页
面向对象编程

面向对象编程

作者: IntoTheVoid | 来源:发表于2019-02-17 23:48 被阅读10次

对象是由characteristics和actions定义

image.png

图中, 店员是一个对象, 这个对象有一些characteristic例如Name, address, phone number和hourly pay. 这个对象也包括一些actions例如销售商品等.

图中, T-shirt作为商品也是一个对象, 它包括一些characteristic例如color, size, styly, price. 它也包括一些actions例如改变价格.

  • characteristics和actions在英语中的解释
    另一种理解characteristics和actions的方法是, 通过英语本身对二者的语法成分, 其中, characteristic是名词, 另一方面, action是动词.

通过现实中的例子, 例如狗, characteristic是狗的身高, 颜色, 高度等. 所有这些都是名词. actions, 对于狗来说, 例如狗叫的过程, 狗撕咬的过程, 或者吃东西的过程, 所有这些都是动词.

image.png image.png

类, 对象, 方法, 属性

对于面向对象编程中, 上面所提到的characteristic, 在其中指的是attributes(属性), 而actions指的是方法(method)

面向对象编程(OOP)词汇表类

  • 由方法和属性对象组成的蓝图
  • 类的实例。它可以帮助将对象视为现实世界中的某些东西,如黄色铅笔,小狗,蓝色衬衫等。但是,正如您将在本课后面看到的那样,对象可能更抽象。
  • 属性 - 描述符或特征。示例可以是颜色,长度,大小等。这些属性可以采用特定的值,如蓝色,3英寸,大等等
  • 方法 - 类或对象可以采取的操作
  • OOP - 面向对象编程的常用缩写封装
  • 面向对象编程背后的基本思想之一称为封装:您可以将函数和数据全部组合到一个实体中。在面向对象的编程中,这个单个实体称为类。 Encapsulation允许您隐藏实现细节,就像scikit-learn包隐藏机器学习算法的实现一样。

在英语中,您可能会听到描述为属性,描述,特征,质量,特征或特征的属性。所有这些都说同样的话。以下是对类,对象,属性和方法如何相互关联的reminder。

image.png image.png

函数和方法

函数和方法很类似, 都是用def关键词, 他们同时都包含输入和输出, 不同之处是方法实在类中, 而函数是在类之外.

  • 类的命名首字母大写
  • 类名称后可以加括号, 也可以不加
  • 初始化所有属性使用合适的值
  • self存储这些属性例如color, size, 是这些属性贯穿整个类
  • self 本质上式一个字典, 拥有所有的属性和属性对应的值
  • self总是出现在各个方法中, 如果想获得相关属性的话
  • 实例化过程, python会首先调用__init__函数
class Shirt:

    def __init__(self, shirt_color, shirt_size, shirt_style, shirt_price):
        self.color = shirt_color
        self.size = shirt_size
        self.style = shirt_style
        self.price = shirt_price
    
    def change_price(self, new_price):
    
        self.price = new_price
        
    def discount(self, discount):

        return self.price * (1 - discount)

self是什么

如果你初始化两个对象, 那么python 是如何区分二者呢?

shirt_one = Shirt('red', 'S', 'short-sleeve', 15)
short_two = Shirt('yellow', 'M', 'long-sleeve', 20)

对于上述的问题, self便是这个问题的关键所在, 如果你调用change_price方法在shirt_one, 那么python如何知道去改变shirt_one还是shirt_two的价格呢?

shirt_one.change_price(12)

python调用change_price方法

def change_price(self, new_price):

        self.price = new_price

self告诉python去寻找内存中的shirt_one对象, 然后, python改变shirt_one的价格, 当调用change_price方法时,shirt_one.change_price(12), self以一种隐藏的方式传入, 以至于change_price函数可以获得self在init中存储的属性

使用面向对象方法构建一个python包

TODO

构建一个包用于分析高斯分布, 包含如下功能:

  • 读入数据集
  • 计算均值
  • 计算标准偏差
  • 绘制直方图
  • 绘制概率分布函数
  • 结合两个高斯分布

回顾高斯分布和二项分布


image.png image.png

Further Resources

If you would like to review the Gaussian (normal) distribution and binomial distribution, here are a few resources:

This free Udacity course, Intro to Statistics, has a lesson on Gaussian distributions as well as the Binomial distribution.

This free course, Intro to Descriptive Statistics, also has a Gaussian distributions lesson.

Here are the wikipedia articles:

相关文章

  • 面向对象_初识

    目录 面向对象编程介绍 类与对象介绍 私有属性与私有方法 面向对象编程 1. 面向对象编程介绍 面向对象编程:Ob...

  • 谈谈面向对象编程

    何为面向对象编程 面向对象编程简介 面向对象编程(Object-oriented Programming,缩写:O...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

  • python-day14

    一、面向对象编程 编程思想:1.面向对象编程 --> 算法,逻辑2.函数式编程 --> 函数3.面向对象编程 ...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • 面向对象浅析

    ### 面向对象编程和面向对象编程语言 面向对象编程的英文缩写是 OOP,全称是 Object Oriented ...

  • 2017-08-14

    面向对象编程用对象的思想去写代码,就是面向对象编程-面向过程-面向对象面向对象编程的特点1.抽象 抽取一样的东西...

  • 面向对象编程,类和对象

    面向对象编程 Java是面向对象的一门编程语言,所以余姚使用者具备面向对象编程的思想。 那么,什么是面向对象编程呢...

  • Swift和OC的区别

    一、编程范式 Swift可以面向协议编程、面向函数编程、面向对象编程。 OC主要是面向对象编程。 二、类型安全 S...

网友评论

      本文标题:面向对象编程

      本文链接:https://www.haomeiwen.com/subject/dppneqtx.html