摘要: 面向对象 类成员 1.成员变量 属性 数值类型的基本数据类型默认值是 0 成员变量在任何方法中都能访问,和声明先后没有关系 2.成员函数 方法 3.定义方式 class 类名{成员变量;成员函数} //首字符大写,$_开头 局部变量 定义在方法或者语句中, 没有默认的初始化值,必须手动初始化 堆 数 阅读全文
posted @ 2018-11-23 15:56 craz_cat 阅读(243) 评论(0) 推荐(0)
摘要: 面向对象 面向过程 :根据业务逻辑从上到下写代码 函数式编程: 对一些功能的代码封装到函数中,日后无需重复编写,直接调用函数就可以了 面向对象 :将所有的功能进行封装,面对的事封装了功能的实体(对象),即面向对象。 面向对象基于面向过程,只是把过程进行了对象的封装。 只要找到了对象,就可以使用对象中 阅读全文
posted @ 2018-11-23 11:06 craz_cat 阅读(125) 评论(0) 推荐(0)
摘要: 装饰器参数之谜 之前已经初步了解过装饰器了,知道了装饰器可以“偷梁换柱”,在不改变函数的调用方式和函数内容的时候,而把函数的功能偷偷地修改。 那么问题来了,如果被修改的函数中有参数的话,怎么样去写这个装饰函数呢?Ok,废话不多说,先上程序: 很显然,程序会报错: in dec bar() TypeE 阅读全文
posted @ 2018-11-13 09:12 craz_cat 阅读(149) 评论(0) 推荐(0)
摘要: 装饰器 定义:本质是函数,(只不过是用来装饰其他函数而已),就是为其他函数添加附加功能 原则: 1. 不能修改被修饰函数的源代码 2. 不能修改被修饰函数的调用方式 实现装饰器的知识储备 1.函数即“变量” 2.高阶函数 a.把一个函数名当做 实参 传给另外一个函数 b.返回值中包含函数名 3.嵌套 阅读全文
posted @ 2018-11-07 21:09 craz_cat 阅读(128) 评论(0) 推荐(0)
摘要: [转]迭代器 引言 可以直接作用于for循环的数据类型有以下几种: 一类是 集合数据类型 ,如list、tuple、dict、set、str等; 一类是 generator ,包括生成器和带yield的generator function。 这些可以直接作用于for循环的对象统称为可迭代对象:Ite 阅读全文
posted @ 2018-11-06 21:49 craz_cat 阅读(329) 评论(0) 推荐(0)
摘要: 1、生成器中,next 和 send 有什么区别呢? next只是单纯的调用yeild,程序跳转到yeild,但是不会给yeild传值。send也是调用yeild,但是同时给yeild传值 2、那么看程序第11、12行,问题来了,此处为什么必须要执行next? 过程分析: 消费者 '胖虎' 执行完之 阅读全文
posted @ 2018-11-06 16:53 craz_cat 阅读(156) 评论(0) 推荐(0)
摘要: 引言:列表生成式 现在有个需求,给定列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],现在要求你把列表里的每个值加1,你怎么实现?你可能会想到2种方式 或者另一种方法: 还有一种写法如下: 这就是列表生成。 生成器 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容 阅读全文
posted @ 2018-11-05 15:20 craz_cat 阅读(150) 评论(0) 推荐(0)