以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ 封装 [封装]隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 将变化隔离: 便于使用: 提高复用性: 提高安全性: [封装原则] 将不需要对外提供的内容都隐藏起来: 把属性都隐藏,提供公共方法对其访问. 私有变量和私有方法 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) 私有变量 #其实这仅仅这是一种变形操作 #类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的形式:…
以下笔记绝大部分(百分之80或以上)摘自我的授课老师之一:老男孩教育中的景老师. 她上课讲的知识点由浅入深,引人入胜,听她的课完全不会感觉到困阿,而且不知不觉中就感觉掌握了. 她的博客是: http://www.cnblogs.com/Eva-J/ 由于面向对象编程是一门思想,目前的我还并没有能力直接转化成自已的语言去组织浅显地讲述出来,而且学习的时间也紧迫, 并不允许过多的去研究.故有鉴于此,后面的学习笔记大多会以整理转摘为主! 面向过程 VS 面向对象 面向过程的程序设计的核心是过程(流水线…
铁乐学Python_Day33_网络编程Socket模块1 部份内容摘自授课老师的博客http://www.cnblogs.com/Eva-J/ 理解socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口. 在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面, 对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议. 其实站在你的角度上看,socket就是一个模块. 我们通过调用模块中已…
铁乐学python_day24_面向对象进阶1_内置方法 题外话1: 学习方法[wwwh] what where why how 是什么,用在哪里,为什么,怎么用 学习到一个新知识点的时候,多问问上面的四个问题,并了解和实践透彻. 什么是反射? 先不说枯燥的概念,你可以自己总结出来,对于python中的反射,什么时候会用到? 需要使用字符串数据类型的变量名来使用变量的时候用到反射. (通过字符串的形式操作对象相关的属性和方法.) 关键词:字符串 使用到字符串的场景多在: 1)文件中存储的是字符串…
铁乐学python_day23_面向对象进阶1_反射 以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ isinstance()和issubclass() 两者的返回值都是布尔值 isinstance() 能够检测到继承关系 type() 只能单纯的判断类 isinstance() 判断一个对象和一个类有没有血缘关系 issubclass() 接收两个参数,前一个是子类名,后一个是父类名 如果返回True,说明有父子(继承)关系. isinstance(obj,c…
前面已经说到面向对象编程有封装,继承,多态三大特性,那么其中的继承则很重要,可以直接单独的拿出来解析 继承 1.什么是继承: 字面意是子女继承父母的家产或者特性等.而在编程里继承是指子类继承父类(基类,超类,都一个意思)的属性和方法 2.怎么继承: 说个简单的例子,在前面里说到了定义类时使用object参数后就带有了object的属性和方法,这种自然带有的属性和方法就是继承. 所以,继承的方法:在事先有父类的前提下,定义子类时,把父类类对象以参数形式传入就行 例子: 3.实际案列: 定义一个继承…
目录 IO模型介绍 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) 多路复用IO(IO multiplexing) 异步IO(Asynchronous I/O) IO模型比较分析 selectors模块 铁乐学python_Day44_IO多路复用 IO模型介绍 blocking IO 阻塞IO nonblocking IO 非阻塞IO IO multiplexing IO多路复用 signal driven IO 信号驱动IO asynchronous IO…
铁乐学python_Day43_协程 引子 之前我们学习了线程.进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位. 按道理来说我们已经算是把cpu的利用率提高很多了. 但是我们知道无论是创建多进程还是创建多线程来解决问题, 都要消耗一定的时间来创建进程.创建线程.以及管理他们之间的切换. 随着我们对于效率的追求不断提高,基于单线程来实现并发又成为一个新的课题, 即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发. 这样就可以节省创建线进程所消耗的时间…
铁乐学python_Day39_多进程和multiprocess模块2 锁 -- multiprocess.Lock (进程同步) 之前我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发处理, 但是它们之间的运行没有顺序,一旦开启也不受我们控制. 尽管并发编程能让我们更加充分的利用IO资源,但是也会带来新的问题. 当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题. 遇到数据.安全比速度重要的场景,我们就需要将进程变回受同步控制. 例: #!/usr/bin/env…
铁乐学Python_Day34_Socket模块2和黏包现象 套接字 套接字是计算机网络数据结构,它体现了C/S结构中"通信端点"的概念. 在任何类型的通信开始之前,网络应用程序必須创建套接字. 可以将它们比作成电话插孔,没有它将无法进行通信. 套接字最初是为同一主机上的应用程序所创建,使得主机上运行的一个程序(又名一个进程)与另一个运行的程序进行通信. 这就是所谓的进程间通信(Inter Process Communication, IPC). 有两种类型的套接字:基于文件的和面向网…