面向对象编程,简称OOP, object oriented programming

OOP编程的三大特性:封装,继承,多态

1. 封装

  把功能的实现细节封装起来,不对外暴露。只留出入接口。

2. 继承

  为了将代码重用,所以需要基础。包括单继承/多继承

  在2.7中,经典类,遵从深度优先原则进行继承;新式类,遵从广度优先原则

  在3.0以后,不论经典类还是新式类,都遵从广度优先原则。以后请全部按新式类来书写!

  经典类: class Foo

  新式类: object是所有类的基类,Foo继承基类object,Foo类的构造函数基于基类进行了重构

  class Foo(object) :

    def __init__(self,name,age,salary,course):

      super(Foo,self).__init__(self,name,age,salary)  # super是一个特殊的类,使用此语法,将父类的构造方法在子类构造方法中执行

      #object.__init__(self,name,age,salary) 此行是经典类中的写法。尽量不要这样写。因为在多继承中,该写法意味着需要显示地调用多个父类的构造方法,容易出问题

      self.salary = salary

      self.sex = sex

3. 多态

  一种接口,多种实现

类:

  属性attribute

    实例变量:存在每个对象的内存里

    类变量:存在类的内存里,所有实例共享这个变量

    私有属性/公有属性:带两个下划线__的变量如__var,是私有属性,只能在类的内部被调用

  方法function

    构造方法:__init__

    析构方法:__del__

    私有方法:只能在类的内部被调用

    静态方法(又称类方法):def上一行加上@staticmethod  直接由类调用该方法,而不是从对象调用

python面向对象编程的更多相关文章

  1. python 面向对象编程学习

    1. 问题:将所有代码放入一个py文件:无法维护 方案:如果将代码才分放到多个py文件,好处: 1. 同一个名字的变量互相不影响 2.易于维护 3.引用模块: import module 2.包:解决 ...

  2. python 面向对象编程(一)

    一.如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法. 类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义: class c ...

  3. Python面向对象编程指南

    Python面向对象编程指南(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1SbD4gum4yGcUruH9icTPCQ 提取码:fzk5 复制这段内容后打开百度网 ...

  4. python面向对象编程进阶

    python面向对象编程进阶 一.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 1 ...

  5. Python面向对象编程(下)

    本文主要通过几个实例介绍Python面向对象编程中的封装.继承.多态三大特性. 封装性 我们还是继续来看下上文中的例子,使用Student类创建一个对象,并修改对象的属性.代码如下: #-*- cod ...

  6. Python 面向对象编程——访问限制

    <无访问限制的对象> 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑.但是,从前面Student类的定义来看(见:Py ...

  7. Python 面向对象编程 继承 和多态

    Python 面向对象编程 继承 和多态 一:多继承性 对于java我们熟悉的是一个类只能继承一个父类:但是对于C++ 一个子类可以有多个父亲,同样对于 Python一个类也可以有多个父亲 格式: c ...

  8. Python 面向对象编程基础

    Python 面向对象编程基础 虽然Pthon是解释性语言,但是Pthon可以进行面向对象开发,小到 脚本程序,大到3D游戏,Python都可以做到. 一类: 语法: class 类名: 类属性,方法 ...

  9. python面向对象编程学习

    python面向对象编程 基本概念理解 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作 ...

  10. Python面向对象编程——继承与派生

    Python面向对象编程--继承与派生 一.初始继承 1.什么是继承 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题. 继承是一种创 ...

随机推荐

  1. 如何用css3实现一个图片的抖动或者弹跳

    <li onmouseout="this.className='off'"><a href=""><img src=". ...

  2. kuangbin_SegTree M (HDU 4553)

    put my gezi这句话不得不说我看了好几秒才反应过来什么意思(你咋不上天呢 目测了一下也是区间合并 但是是成段更新的区间合并 但是!我终于!自己!写出来了! 嗯还算是比较顺利的 query的地方 ...

  3. unity, reduce android size

    参考: https://www.youtube.com/watch?v=TYSmf_zgtZo http://stackoverflow.com/questions/41087220/how-to-u ...

  4. Mac系统终端命令行不执行命令 总出现command not found解决方法

    配置过安卓开发环境,改过bash_profile这个文件,最后不知怎么的只有cd命令能执行,我猜测可能修改bash_profile文件后没有保存 导致的     保存命令是:  source .bas ...

  5. LeetCode----Linked List

    Swap Nodes in Pairs 思路:需要构造一个头指针,指向链表.一次比较两个指针,将其翻转,临界条件是pre != null(链表长度为偶数) && pre.next != ...

  6. Java BigDecimal 加减乘除运算

    加法:add 减法:subtract 乘法:multiply 除法:divide BigDecimal bignum1 = new BigDecimal("10"); BigDec ...

  7. D 最熟悉的陌生人 (纪念当年就读的梅州市江南高级中学)

    最熟悉的陌生人 作者:张慧桥 “蝶恋花” 我匆匆地跟听众道了声再见,手忙脚乱地关掉了机器,拿出手机按下了一个快捷键…… “嘟…嘟…” 电话响两下后,我听到了那个我在睡梦中都可以认出来的声音. “你现在 ...

  8. 很不错的在线Office控件:IWebOffice与SOAOffice

    http://blog.csdn.net/cjh200102/article/details/17220441 iWebOffice2003文档控件 iWebOffice2003网络文档中间件能够在I ...

  9. ElasticSearch优化配置

    ################################################################### /etc/elasticsearch/elasticsearch ...

  10. 手机平板等移动端适配跳转URL的js代码

    <script type="text/javascript"> if(/AppleWebKit.*mobile/i.test(navigator.userAgent) ...