2018年8月28日
摘要: 一 类中定义的函数分成两大类 一:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法。 为类量身定制 类.boud_method(),自动将类当作第一个参数传入 (其实对象也可调用,但仍将类当作第一个参数传入) 2. 绑定 阅读全文
posted @ 2018-08-28 17:56 Messiless 阅读(216) 评论(0) 推荐(0) 编辑
  2018年8月26日
摘要: 封装 封装可以理解为一个多功能的自助饮料机器,且机器是不透明密封的,只在下方开了不同的龙头,当顾客需要不同的饮料时,只需要去打开不同的龙头开关即可得到自己想要的饮料,但顾客不知道机器内部是产生不同的饮料的。 在python中,封装可以是类,可以是函数。封装是将数据或属性隐藏在内部,不让外部看到。 在 阅读全文
posted @ 2018-08-26 20:01 Messiless 阅读(147) 评论(0) 推荐(0) 编辑
  2018年8月25日
摘要: 创建和使用类 创建Dog类,赋予dog蹲下(sit())和打滚(roll_over())的能力 定义子类时,在括号里指定父类的名称。super()帮助Python将父类和子类关联起来,调用父类的方法_init_(),让ElectricCar实例包含父类的所有属性。 上面ElectricCar实例的行 阅读全文
posted @ 2018-08-25 12:42 Messiless 阅读(149) 评论(0) 推荐(0) 编辑
  2018年8月24日
摘要: 递归 递归:在调用一个函数的过程中,直接或间接地调用了函数本身这个就叫递归 1.必须有个明确的结束条件 2.每次进入更深一层递归时,问题规模相比上次递归应有所减少 3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加 阅读全文
posted @ 2018-08-24 22:03 Messiless 阅读(184) 评论(0) 推荐(0) 编辑
摘要: python内置函数 abs() 绝对值 all() 传进一个可迭代对象,如果对象为空,比如[],' '等,则返回Ture,如果不为空,则需要全部对象为Ture,才返回Ture 例: #output : False sum()传进一个可迭代对象,进行求和计算 any()传进一个可迭代对象,如果对象为 阅读全文
posted @ 2018-08-24 16:45 Messiless 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 生成器表达式 相比列表表达式,将[]换成了(),返回对象不是一个列表,而是一个生成器,相比列表更加省内存 实例1: 列表表达式写法: 生成器表达式写法: 实例2: 一般写法: 生成器表达式写法: 阅读全文
posted @ 2018-08-24 00:50 Messiless 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 列表生成式 会将所有的结果全部计算出来,把结果存放到内存中,如果列表中数据比较多,就会占用过多的内存空间,可能会导致MemoryError内存错误或者导致程序在运行时出现卡顿的情况 实例1: 在数字0-99中,取大于50的数,分为拼接在apple字符串后面,并存到一个列表中 一般的写法: 列表生成式 阅读全文
posted @ 2018-08-24 00:24 Messiless 阅读(117) 评论(0) 推荐(0) 编辑
  2018年8月22日
摘要: 协程函数 实例: g.send与next(g)的区别是: 1.如果函数内yield是表达式形式,那么必须先next(g) 2.二者的共同之处都是可以让函数在上一次暂停的位置继续运行,不一样的地方在于send在触发下一次代码的执行时,会顺便给yield传一个值 如果不想写next的初始化,而直接调用s 阅读全文
posted @ 2018-08-22 23:14 Messiless 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 生成器 生成器就是一个函数,这个函数内包含yield这个关键字 生成器与return的区别: return只能返回一次函数就结束,而生成器可以返回多次值 生成器函数包含一个或者多个yield 当调用生成器函数时,函数将返回一个对象,但是不会立刻向下执行,yield会保存一个状态,下一次运行会在这个位 阅读全文
posted @ 2018-08-22 19:12 Messiless 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 迭代器 迭代器是一个可以记住遍历的位置的对象。 迭代器有两个基本的方法:iter() 和 next()。 使用对象内置的__iter__()方法生成迭代器 it = name.__iter__() 使用内置工厂函数生成迭代器 it = iter(name) 迭代器通过其内建的 iter.next() 阅读全文
posted @ 2018-08-22 10:58 Messiless 阅读(133) 评论(0) 推荐(0) 编辑