1、反编译:
1.1Windows下生成pyd文件(加密)
[Windows下安装Python扩展提示"Unable to find vcvarsall.bat"]( "Windows下安装Python扩展提示"Unable to find vcvarsall.bat"")
2、断言和异常:
从软件方面来说,错误是语法或者逻辑上的。
其中异常是:程序出现错误而在正常控制流之外采取的行为。这个行为分为两个阶段:触发(try)和处理(except/finally)。
3、装饰器的基础是闭包,闭包的基础是函数式编程。
函数式编程的基础是:变量可以指向函数(函数名也是变量),函数可以作为参数传入。
函数式编程:
闭包:
装饰器:
4、AOP和装饰器的关系:
AOP的概念及spring3对AOP的实现:
Python对AOP的实现:装饰器
5、flask蓝图的使用
5、Python中HASH方法与数据类型的关系
A、TypeError: unhashable type(list/set/dict)
list不使用hash值进行索引,故其对所存储元素没有可哈希的要求。set/dict反之,而dict仅对键值有可哈希的要求,对值无此要求。而且,这里的哈希是对可迭代对象中所存储的元素的要求。
B、Python变量分为:不可变类型和可变类型
Python在声明不可变类型时会在已经声明的对象中寻找该对象是否已经被声明过,若该对象被声明过,变量会直接指向该对象不会再申请新的内存空间。
PS:我认为不可变集合不是不可变类型,因为声明过的对象,申请了新内存。
C、集合与不可变集合
集合是一个无序的互异的可变的序列。集合中的元素必须是可hash的,即不可变的数据类型。
6、Python lock锁与rlock锁
Python中lock和rlock的区别:
a.lock只能被请求一次。且只有被释放后才可以再次被请求。
2.rlock被同一个线程请求多次,但同样也必须被相同的线程释放锁。
可重用锁(rlock)内部维护着一个lock和counter 变量,counter记录了acquire的次数,每次acquire,counter就加1;每次release,counter就减1。只有counter的值为0时,其它线程才能获取资源。