摘要: # 写一个函数,参数是两个文件的路径 # 返回的结果是T/F # 判断两个文件的md5值是否相同 阅读全文
posted @ 2018-04-23 21:34 铁乐猫 阅读(344) 评论(0) 推荐(0) 编辑
摘要: Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢? 摘要算法又称哈希算法、散列算法。 它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest, 目的是为了发现原始数据是否被人篡改过。 摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数, 计算f(data)很容易,但通过digest反推data却非常困难。 而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。 阅读全文
posted @ 2018-04-23 21:27 铁乐猫 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 铁乐小结: 1、shelve模块将内存数据以字典的类型(key,value)通过文件持久化,模拟出简单的db效果。 2、shelve模块可以持久化任何pickle可支持的python数据格式,但是它的key必需得是字符串。 3、shelve实际上就是pickle模块的一个封装,但它实现了可以多次dump和load。 4、shelve访问己有key时,实际上取出的是数据源给出的一份拷贝, 所以对于拷贝做出的增加和删除等操作都需要用writeback=True参数才能实现写入回源中进行修改。 5、shelve对于d[key] = data这种操作,视为存储数据,无则新增,有则覆盖, 与访问key对当中的值(条目)进行修改默认不回写并不矛盾和冲突。 阅读全文
posted @ 2018-04-21 12:31 铁乐猫 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 内置模块---之 序列化模块 能存储在文件中一定是字符串或字节,能在网络上传输的只有字节,而字节能转换成字符串。 什么叫序列化——将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。 阅读全文
posted @ 2018-04-21 12:20 铁乐猫 阅读(252) 评论(0) 推荐(0) 编辑
摘要: item 系列 对象使用中括号的形式去操作(属性) __getitem__\__setitem__\__delitem__ []中括号的形式,字典的通过key找值的方式,通过双下getitem实现 __getitem__ 查询 对象名[属性名] 等同对象名.属性名 __setitem__ 设置 对象名[属性名]= 值 赋值和修改,新增 __delitem__ 删除 del 对象名[属性名] 等同del 对象名.属性 也相当于执行了__delattr__ 阅读全文
posted @ 2018-04-19 21:04 铁乐猫 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 在类中的反射 正常情况下如果可以拿到这个变量, 那么如果有这个变量的字符串形式,就可以用反射获取到这个值。 找一个属性,直接就可以找到这个属性的值; 找一个方法,找到的是这个方法的内存地址。 阅读全文
posted @ 2018-04-18 21:24 铁乐猫 阅读(156) 评论(0) 推荐(1) 编辑
摘要: 很多人在学完了python的class机制之后,遇到一个生产中的问题,还是会懵逼,这其实太正常了。 因为任何程序的开发都是先设计后编程,python的class机制只不过是一种编程方式, 如果你硬要拿着class去和你的问题死磕,变得更加懵逼都是分分钟的事, 在以前,软件的开发相对简单,从任务的分析到编写程序,再到程序的调试,可以由一个人或一个小组去完成。 但是随着软件规模的迅速增大,软件面临的问题十分复杂,需要考虑的因素太多, 在一个软件中所产生的错误和隐藏的错误、未知的错误可能达到惊人的程度,这也不是在设计阶段就完全解决的。 所以软件的开发其实有一整套规范,我们所学的只是其中的一小部分, 一个完整的开发过程,需要明确每个阶段的任务,在保证一个阶段正确的前提下再进行下一个阶段的工作, 称之为软件工程。 阅读全文
posted @ 2018-04-17 17:14 铁乐猫 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 私有的用法 1)当一个方法不想被子类继承的时候; 2)有些属性或者方法不希望从外部被调用,只想提供给内部的方法使用。 这种自动变形的特点: 1.类中定义的__x只能在内部使用,如self.__x,引用的就是变形的结果。 2.这种变形其实正是针对外部的变形,在外部是无法通过__x这个名字访问到的。 3.在子类定义的__x不会覆盖在父类定义的__x,因为子类中变形成了:_子类名__x, 而父类中变形成了:_父类名__x,即双下滑线开头的属性在继承给子类时,子类是无法覆盖的。 阅读全文
posted @ 2018-04-17 16:42 铁乐猫 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用)   二:声明某个子类兼容于某基类,定义一个接口类Interface, 接口类中定义了一些接口名(就是函数名)且并未实现接口的功能, 子类继承接口类,并且实现接口中的功能。 阅读全文
posted @ 2018-04-17 11:40 铁乐猫 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 面向对象的组合用法 软件重用的重要方式除了继承之外还有另外一种方式,即:组合 组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合。 阅读全文
posted @ 2018-04-16 21:52 铁乐猫 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 面向对象编程可以使程序的维护和扩展变得更简单,并且可以大大提高程序开发效率 , 另外,基于面向对象的程序可以使它人更加容易理解你的代码逻辑,从而使团队开发变得更从容。 阅读全文
posted @ 2018-04-13 22:06 铁乐猫 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 目前知道的迭代器有两种: 一种是调用方法直接返回的; 一种是可迭代对象通过执行iter方法得到的。 迭代器的好处是可以节省内存。 如果在某些情况下,我们也需要节省内存,就只能自己写。自己写的这个能实现迭代器功能的东西就叫生成器。 阅读全文
posted @ 2018-04-04 20:47 铁乐猫 阅读(285) 评论(0) 推荐(0) 编辑
摘要: python,第12天,作业,装饰器 阅读全文
posted @ 2018-04-04 20:30 铁乐猫 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象。 装饰器的应用场景:比如插入日志,性能测试,事务处理,缓存等等场景。 阅读全文
posted @ 2018-04-04 20:15 铁乐猫 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 内层函数对外层函数,非全局变量的引用。 判断闭包函数:函数名.__closure__(),返回的值中有cell这个元素表示该函数为闭包函数。 闭包函数的机制:当函数开始执行时,如果遇到了闭包,在内存当中会为闭包开辟一个内存空间,用于将闭包中的变量等值放入其中,并不会随着函数的执行完毕而消失。 阅读全文
posted @ 2018-04-03 22:11 铁乐猫 阅读(207) 评论(1) 推荐(0) 编辑