1.Python实现OOP可以概括为三个概念:

  • 继承:基于Python属性查找
  • 多态:在x.method中,method的意义取决于x的类型
  • 封装:方法和运算符实现行为,数据隐藏是一种惯例

2.委托:通常就是指控制器对象内嵌其他对象,而把运算请求传给那些对象。

3.类的伪私有属性:变量名压缩,一种把类所创建的变量名局部化的方式,主要是为了避免实例内的命名空间的冲突,当每个类说self.x时所得的值,

  取决于最后一个赋值的是那个类。变量名

class C1:
def meth1(self):
self.x = 88
def meth2(self):
print(self.x) class C2(object):
"""docstring for C2"""
def metha(self):
self.x = 99
def methb(self):
print(self.x) class C3(C1,C2):
pass if __name__ == "__main__":
c3 = C3()
c3.meth1()
c3.metha()
c3.meth2() # 此时调用输出为99,会覆盖C1的x的值
class C1:
def meth1(self):
self.__x = 88
def meth2(self):
print(self.__x) class C2(object):
"""docstring for C2"""
def metha(self):
self.__x = 99
def methb(self):
print(self.__x) class C3(C1,C2):
pass if __name__ == "__main__":
c3 = C3()
c3.meth1()
c3.metha()
c3.meth2() # 此时调用输出为88

4.绑定方法与无绑定方法

对象点号运算,而没有用括号调用之前产生绑定方法

类点号运算之后,产生无绑定方法,但是调用之前必须明确的传入self参数

class Test:
def display(self,*arg):
print(arg) if __name__ == "__main__":
t1 = Test()
func = t1.display # 绑定方法
func([1,2,3]) # 调用时不必指出self参数,因为已经将方法绑定到对象t1 t2 = Test()
func2 = Test.display # 无绑定方法
func2(t2,[4,5,6]) # 调用时必须明确指定self参数

Python OOP 面向对象的更多相关文章

  1. Python OOP面向对象

    一.什么是面向对象的程序设计 1.面向过程 程序设计:核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式的思维方式. 优点是 ...

  2. python oop面向对象笔记

    #coding:utf-8 class Person(object): def __init__(self,name,wage): self.name = name self.wage = wage ...

  3. 如何吃透Python的面向对象(OOP)

    ​本篇可乐和大家一起来吃透 Python 的面向对象,类和实例. 面向对象(OOP) 解释:面向对象它是一种编程的思想,将现实事物抽象化为编程对象. 举例说明:喝可乐 ① 选择自己根据配方买对应的材料 ...

  4. python基础——面向对象编程

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

  5. Python OOP(1):从基础开始

    本文旨在Python复习和总结: 1.如何创建类和实例? # 创建类 class ClassName(object): """docstring for ClassNam ...

  6. python学习------面向对象的程序设计

    一 面向对象的程序设计的由来 1940年以前:面向机器 最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数 据.简单来说,就是直接编写 和 的序列来代表程序语言 ...

  7. 【转】Python之面向对象与类

    [转]Python之面向对象与类 本节内容 面向对象的概念 类的封装 类的继承 类的多态 静态方法.类方法 和 属性方法 类的特殊成员方法 继承层级关系中子类的实例对象对属性的查找顺序问题 一.面向对 ...

  8. what's the python之面向对象

    编程分为面向过程和面向对象,首先我们要了解什么是面向对象. 面向对象 面向过程就是我们之前学的内容,主要是函数式,其核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全 ...

  9. <转>Python OOP(1):从基础开始

    转自  http://www.cnblogs.com/BeginMan/p/3510786.html 本文旨在Python复习和总结: 1.如何创建类和实例? # 创建类 class ClassNam ...

随机推荐

  1. 使用vlookup函数下拉全部相同解决

    菜单“公式”-“计算选项”改为自动 ref: https://zhidao.baidu.com/question/561971299094821004.html

  2. php程序设计 1,2章节

    <?php/** * Created by PhpStorm. * User: DY040 * Date: 2017/9/4 * Time: 10:39 * * * 1: php起源于1995 ...

  3. APP测试总结1

    1.安装.卸载测试 安装.卸载测试主要针对编译后源程序生成的APK安装文件 主要测试点: 1).生成的APK文件在真机上可以安装及下载 2).Android手机端的通用安装工具,如:豌豆荚及91助手等 ...

  4. echarts自定义tooltip提示框内容

    1.echarts自定义tooltip提示框内容 https://blog.csdn.net/dreamsup/article/details/56667330 2.关于Echarts的formatt ...

  5. UGUI 哪些显示在前方的问题

    1.对于一个场景里不同的Canvas来说,越最后创建的或者越最后激活的Canvas,越显示在前方. 2.对于同一个Canvas里的UI来说在Hierarchy面板越靠下越显示在前方.

  6. 《Flink 源码解析》—— 源码编译运行

    更新一篇知识星球里面的源码分析文章,去年写的,周末自己录了个视频,大家看下效果好吗?如果好的话,后面补录发在知识星球里面的其他源码解析文章. 前言 之前自己本地 clone 了 Flink 的源码,编 ...

  7. 控制input输入框中提示信息的显示和隐藏的方法

    在运用html+css+javascrpt进行页面制作时,我们往往会遇到一些影响用户体验,而又容易被我们忽视的小细节.比如,input输入框中的提示信息,怎样才能根据对象获得和失去焦点而实现其显示和隐 ...

  8. 斗鱼扩展--DouyuRoom使用说明(十四)

    1.从 https://pan.baidu.com/s/1yBfZFtcakbDxmyas0VCpRw 下载 DouyuRoom.zip 然后解压到一个目录,我是放在C盘根目录下的,你们随意.然后解压 ...

  9. Hibernate课程 初探多对多映射2-1 创建数据库表

    --创建表 -- 创建项目表 create table project(  proid int(10) not null comment '项目Id',  proname varchar(30) co ...

  10. Hibernate课程 初探一对多映射4-1 inverse属性

    1 <Set>节点的inverse属性默认由one方来维护(默认值为false).将inverse属性修改为true则由多方来维护.