一 . 初识面向对象

面向过程:
  一切以事务的发展流程为中心.
面向对象:
  一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象 打比方:
  大象进冰箱
    步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门     面向对象:大象, 你进冰箱.
      此时主语是大象. 我操纵的是大象. 此时的大象就是对象

二 . 类.对象

类: 就是图纸. 创建对象的第一步. 先画图纸. 先写类.
  对象: 对象就是车. 通过图纸造出来的具体的东西. 通过类来创建对象   类与对象的关系:
    类是对xxx事物的归类.
      写:
        __init__(self, 参数) 参数一般作为属性设置给对象. 对象就是self, 对属性的封装.         def 方法(self, 参数): 方法. 第一个参数一般是固定的self. 当前类的对象.
          pass     对象是xx类型的一个具体
      创建对象: 类名()
创建类:
    class 类名:       def __init__(self): # 初始化方法. 又被成为构造方法
        self.属性 = 值
        self.属性 = 值
        self.属性 = 值       def fangfa(self):
        方法体(函数体, return)     创建对象:
      变量 = 类名() # 实例化 <-> 创建对象       变量.属性 # 访问对象的属性信息
      变量.方法() # 访问类中的方法
class Hero:
def __init__(self, waihao, name, story):
self.waihao = waihao
self.name = name
self.story = story
def q(self):
print("拎着宝剑嗷嗷跑")
def w(self):
print("护盾")
def e(self):
print("电风扇")
def r(self):
print("大宝剑")
gw = Hero("德玛西亚之力", "盖伦", "500年前盖伦拿一个破棍子捅破了玉皇大帝的尿壶...埋在五指山下")
gw.q()
gw.w()
gw.r()
class Phone:
def __init__(self, color, dianchi, num, price):
self.color = color
self.dianchi = dianchi
self.num = num
self.price = price
def call(self, ren):
print("使用我的%s颜色价值%s的电话打给%s" % (self.color, self.price, ren))
def play(self):
print("电话可以打游戏")
sj = Phone("黑色", "5W安", "", "9W欧元")
sj.call("刘德华")
sj.play()

三 . 面向对象和面向过程的对比  

如果写一些比较小的程序用面向过程.
程序很复杂. 很庞大建议用面向对象.

三 . 面向对象的三大特征

封装:
    1. 对属性的封装(__init__())
    self.xxx = xxx
    2. 对方法和功能的封装 继承
  子类自动拥有父类中除了私有内容外的其他所有内容
  class Bar(Foo): Bar对Foo进行了扩展
    pass
  当出现x是一种y的时候. 推荐使用继承关系
  python支持多继承. 查找顺序: 先找离他近的. 多态(python原生直接就是多态)
  python更多的支持的是鸭子模型, 只要会嘎嘎叫就是好鸭子

  鸭子模型

# 鸭子模型

class Animal:
def eat(self):
print('动物会吃') class Tiger:
def eat(self):
print('老虎也会吃') class Cat:
def eat(self):
print('猫也能吃') # 只要能eat()的就是动物
def func(animal):
animal.eat() t = Tiger() # Tiger有eat() 所以Tiger是动物
c = Cat() # Cat有eat() 所以Cat也是动物
func(t)
func(c)

  

python之路--初识面向对象的更多相关文章

  1. python之路----初识面向对象(二)

    类命名空间与对象.实例的命名空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类有两种属性:静态属性和动态属性 静态属性就是直接在类中定义的变量 动态属性就 ...

  2. Python 入门 之 初识面向对象

    Python 入门 之 初识面向对象 1.初识面向对象编程 (核心--对象) (1)观察以下代码: # 面向过程编程 s = "alexdsb" count = 0 for i i ...

  3. (转)Python之路,Day6 - 面向对象学习

    本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.     引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战> ...

  4. Python之路-初识python及环境搭建与测试(Python安装、Anaconda安装、PyCharm安装)

    一.认识Python 起源 Python的作者是著名的“龟叔”Guido van Rossum,他希望有一种语言,这种语言能够像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻 ...

  5. Python之路,Day6 - 面向对象学习

    本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏 ...

  6. Python之路: 面向对象

    Python是一门面向对象的语言,所以在Python中创建一个类和对象是很容易的.接下来了解一下面像对象的一些基本特征. 面向对象技术简介 类(class):描述具有相同的属性和方法的对象的集合.定义 ...

  7. 转:Python之路,Day6 - 面向对象学习

    这篇文章写的不错,转来收了 转自:http://www.cnblogs.com/alex3714/articles/5188179.html   本节内容:   面向对象编程介绍 为什么要用面向对象进 ...

  8. python之路——初识函数

    阅读目录 为什么要用函数 函数的定义与调用 函数的返回值 函数的参数 本章小结 返回顶部 为什么要用函数 现在python届发生了一个大事件,len方法突然不能直接用了... 然后现在有一个需求,让你 ...

  9. 十一Python之路,Day6 - 面向对象学习

      本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.     引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战& ...

随机推荐

  1. -bash: _docker_machine_ps1: 未找到命令

    场景:在安装完docker-machine,设置docker-machine命令自动补齐的时候,出现以下错误: -bash: __docker_machine_ps1: 未找到命令 解决办法:在~/. ...

  2. 【转】如何判断ARP欺骗?该怎么防护?

    因为在进行通信的时候,数据是通过MAC地址与IP地址的对应关系来进行转发的.若其中MAC地址与IP地址对应的关系出错,就会导致数据错误转发,影响正常通信.通过某种手段,来更改MAC与IP地址的对应关系 ...

  3. 为什么matlab激活完后还要激活(Matlab2012b license失效解决办法)

    第一步:打开matlab安装路径中的license文件夹,删除其中的lic文件 第二步:更换新的license.lic文件 第三步:重新打开matlab 搞定! license.lic文件的内容是: ...

  4. 【P1941】 飞扬的小鸟

    题目描述 游戏界面是一个长为 nn,高为 mm 的二维平面,其中有 kk 个管道(忽略管道的宽度). 小鸟始终在游戏界面内移动.小鸟从游戏界面最左边任意整数高度位置出发,到达游戏界面最右边时,游戏完成 ...

  5. C++11 并发指南四(<future> 详解二 std::packaged_task 介绍)

    上一讲<C++11 并发指南四(<future> 详解一 std::promise 介绍)>主要介绍了 <future> 头文件中的 std::promise 类, ...

  6. [Spark][Python][Application]非交互式运行Spark Application 的例子

    非交互式运行Spark Application 的例子 $ cat Count.py import sys from pyspark import SparkContext if __name__ = ...

  7. python五子棋

    以后不更新了,把以前的一些东西发出来. 这是一个命令行环境的五子棋程序.使用了minimax算法. 除了百度各个棋型的打分方式,所有代码皆为本人所撸.本程序结构与之前的井字棋.黑白棋一模一样. 有一点 ...

  8. ASP.NET Core 与支付宝开发文档

    一.目录 ASP.NET Core 2.0 使用支付宝PC网站支付 ASP.NET Core 2.0 支付宝当面付之扫码支付 常见使用问题解答 已有多个公司数个项目用本组件并上线,稳定使用. 二.项目 ...

  9. 《程序猿闭门造车》之NBPM工作流引擎 - 项目整体架构

    前言: 又是一年一度的圣诞节,可这关我什么事呢 :( ,好不容易周末了,还是说说NBPM吧,前不久我发布了一篇关于工作流的文章:<程序猿闭门造车>之NBPM工作流引擎 - 开篇,很多爱好工 ...

  10. python之间的基础

    编程第一步 print('hello,world!') 变量名的命名的规则: 1:变量由字母,数字,下划线组成 2:变量不能以数字开头 3:禁止使用python中的关键字,如 'alse', 'Non ...