摘要: 1 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls) obj是否是cls的对象或cls子类的对象 issubclass(sub,super) sub是否是super的子类 cls.\_\_bases\_\_ 获取cls的父类 阅读全文
posted @ 2017-04-24 21:49 思否丶 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 1 封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口。 2 为什么要封装 封装数据:可以保护隐私(比如银行卡号、密码) 封装方法:隔离复杂度(把内部具体的复杂实现过程隐藏起来。) 在python中因为没有像java中那样的接口实现。所以我们这里说的向外提供的接口,是函数,也叫接口函数。 3 封 阅读全文
posted @ 2017-04-24 21:48 思否丶 阅读(462) 评论(0) 推荐(1) 编辑
摘要: 1 继承 继承:子类继承父类。继承是一种创建新类的方式。 2 继承的顺序 1. 因为python支持多继承,所以有时候不得不考虑继承的顺序。 2. Python类如果继承多个类,寻找类的方法有两种,分别是:广度优先和深度优先。 其中python3和python2中的新式类,采用的是广度优先。 pyt 阅读全文
posted @ 2017-04-24 21:47 思否丶 阅读(630) 评论(0) 推荐(0) 编辑
摘要: 在python2中,有新式类和经典类和经典类的区别: 新式类 继承自object或object的子类,这样的类就叫新式类。 结果: 经典类 没有继承object或object的子类。 而在python3中不再有这种区别,所有的类不写括号,默认继承自object(都是新式类)。 阅读全文
posted @ 2017-04-24 21:46 思否丶 阅读(331) 评论(0) 推荐(0) 编辑
摘要:      面向对象的编程带来的主要好处之一是代码的复用,实现这种复用的方法之一是通过继承机制。      python中解决代码复用的方式:继承和组合。 1 什么是继承   &nb 阅读全文
posted @ 2017-04-24 21:46 思否丶 阅读(9956) 评论(2) 推荐(1) 编辑
摘要: 1 迭代 迭代就是重复做一件事。 2 什么是迭代器协议 1. 迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2. 可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__i 阅读全文
posted @ 2017-04-24 21:45 思否丶 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 函数式编程,一种编程规范。就是模仿数学里的函数的实现过程,如f(x)=2x+1。 python里并没有太多的函数式编程的内容,稍有涉及函数式编程的,如python中lambda表达式。 函数式编程的特点: 1. 不修改外部变量的值 2. 非常精简(以至于可读性非常差) 3. 模仿数学式的函数 阅读全文
posted @ 2017-04-24 21:44 思否丶 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 匿名函数 匿名函数,顾名思义,没有名字的函数,也不用写return。 普通函数: 匿名函数: 直接用g()来调用该匿名函数,和上面普通函数一样,都实现了两个数的求和。":"和"lambda"之间的变量是匿名函数的形参。":"后面的是匿名函数的返回值。 匿名函数的好处: 想什么时候使用,就什么时候定义 阅读全文
posted @ 2017-04-24 21:42 思否丶 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 1 面向过程的程序设计      在说面向对象的程序设计以前,先说下我们之前写的那些面向过程的程序的特点:针对性很强,针对特定的需求所写;流水线式的设计,先实现什么再实现什么,结构非常清晰。但耦合度非常高,牵一发而动全身。 总结面向过程的特点: 1. 阅读全文
posted @ 2017-04-24 21:42 思否丶 阅读(366) 评论(0) 推荐(0) 编辑
摘要: ```python data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35] def binary_search(num,data): if(len(data) 0): mid=int((len(data)) 阅读全文
posted @ 2017-04-24 21:41 思否丶 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 递归 在函数内调用函数自身,那我们称之为递归函数。 日常生活中的递归 问题:有5个人,问第5个人年龄,他说他比第4个人大2岁;问第4个人年龄,他说他比第3个人大2岁;问第3个人年龄,他说他比第2个人大2岁;问第2个人年龄,他说他比第1个人大2岁;问第1个人年龄,他说他18岁。求第1个人年龄是多少? 阅读全文
posted @ 2017-04-24 21:40 思否丶 阅读(215) 评论(0) 推荐(0) 编辑
摘要: python3.6常用的内函数Built in Functions有哪些: | | | | | | | | | | | | |abs() |dict() |help() |min()|setattr() | |all()| dir() |hex() | next() |slice()| |any() 阅读全文
posted @ 2017-04-24 21:38 思否丶 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 列表生成式(列表解析) 列表生成式(List Comprehensions) 在python中,我们可以直接在列表中写表达式,来构造一个列表生成式。 语法 类似于 优点 方便,改变了编程习惯,声明式编程。 补充 用list()将一个惰性序列变成列表(元组、集合也都可以这样做) 原理是:先将可迭代的对 阅读全文
posted @ 2017-04-24 21:37 思否丶 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 生成器(generator)      在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。生成器本身就是迭代器。 1 生成器表达式 生成器表达式的语法和列表生成式的一样,只不过把列表生成式的[]换成()。 2 生成器函数 阅读全文
posted @ 2017-04-24 21:35 思否丶 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 题目:利用协程来遍历目录下,所有子文件及子文件夹下的文件是否含有某个字段值,并打印满足条件的文件的绝对路径。 使用装饰器以后,无需再每次执行.send(None),形参target接收的是一个生成器。 整个编程采用了面向过程的思路。 面向过程需要把整个流程设计出来。 其好处就是:a.体系结构更加清晰 阅读全文
posted @ 2017-04-24 21:34 思否丶 阅读(2958) 评论(0) 推荐(0) 编辑
摘要: "a" in s s.count("elemente") len(s) "key" in dic; len(dic) "elemente" in s len(s) 总结: 1. 字符串和容器都可以计算长度len(), 检查某个元素是否属于(in) 2. 只有列表和字典有copy()。 3. 元组和字 阅读全文
posted @ 2017-04-24 21:32 思否丶 阅读(750) 评论(0) 推荐(0) 编辑
摘要: python的functools模块提供的功能。用来修改或设置函数的默认值。 将整形int的base参数重新设定默认值为 2,并返回给一个新的函数int2,以后int2等价于base=2的int()方法。 阅读全文
posted @ 2017-04-24 21:30 思否丶 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1 为什么要用装饰器 在介绍装饰器以前,我们先介绍一个写代码需要遵循的原则:开发封闭原则(OCP,Open Closed Principle)。一但产品上线,就尽量避免修改源代码。但在后期,也会添加各种需求。所以在设计之初,需要预留一些接口,用来作修改的手段。装饰器也应运而生。 开发封闭原则:已经实 阅读全文
posted @ 2017-04-24 21:29 思否丶 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 1 函数可以用在哪些地方 函数作为第一类对象: 1. 可以赋值给变量 2. 可以作为参数 3. 可以作返回值 4. 可以作为容器的对象 2 闭包的概念 什么是闭包? 维基的解释:在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引 阅读全文
posted @ 2017-04-24 21:28 思否丶 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 1 命名空间      命名空间(namesapce)用来记录变量的轨迹(记录名字的地方)。命名空间本质上是一个字典(dict),它的键就是变量名,值就是变量的值。A namespace is a mapping from names to obje 阅读全文
posted @ 2017-04-24 21:27 思否丶 阅读(467) 评论(0) 推荐(0) 编辑
return