摘要: 我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦start后, 线程就属于失控状态. 不过, 我们可以自己实现这些. 一般的方法就是循环地判断一个标志 阅读全文
posted @ 2016-12-05 10:31 scolia 阅读(129239) 评论(3) 推荐(9) 编辑
摘要: 题目: 给定一个英文的字符串, 要求你将其中的元音删除掉, 返回新的字符串. 例如:"This website is for losers LOL!" --> "Ths wbst s fr lsrs LL!" 当看到这个题目的时候, 第一个想起的就是re模块的正则表达式. 不过由于最近使用过字符串的 阅读全文
posted @ 2016-11-30 09:58 scolia 阅读(829) 评论(0) 推荐(0) 编辑
摘要: django提供了一套用户验证系统,但是要使用这个系统,必须要使用django内置的用户模型:django.contrib.auth.models.User,这个模型中预先定义了一些字段,其中只有username和password是必须的。 username 用户名,该字段是必须的,长度限制版本之间 阅读全文
posted @ 2016-08-19 20:03 scolia 阅读(12719) 评论(1) 推荐(2) 编辑
摘要: django自带的用户认证系统提供了访问控制的的功能。 1.只允许登录的用户登录 django的用户可分为两类,一是可认证的用户,也就是在django.contrib.auth.models.User中注册了的;另一种是匿名用户django.contrib.auth.models.Anonymous 阅读全文
posted @ 2016-08-19 10:52 scolia 阅读(12213) 评论(0) 推荐(0) 编辑
摘要: 属性访问控制 所谓的属性访问控制就是控制点号访问属性的行为,而且不仅是类的外部,连类的内部也受控制,代码见真章,边看代码边解释: __getattr__(self, item) __getattr__(self, item) 定义当访问不存在的属性时的行为,注意是不存在的属性。 测试: 其行为和没定 阅读全文
posted @ 2016-07-25 01:36 scolia 阅读(4026) 评论(0) 推荐(1) 编辑
摘要: 类型转换魔法 类型转换魔法其实就是实现了str、int等工厂函数的结果,通常这些函数还有类型转换的功能,下面是一些相关的魔法方法: __int__(self) 转换成整型,对应int函数。 __long__(self) 转换成长整型,对应long函数。 __float__(self) 转换成浮点型, 阅读全文
posted @ 2016-07-22 00:57 scolia 阅读(3530) 评论(0) 推荐(0) 编辑
摘要: 自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,string等)。 如果要实现这个功能,就要遵循 python 的相关的协议。所谓的协议就是一些约定内容。例如,如果要将一个类要实现迭代,可以实现__iter__( 阅读全文
posted @ 2016-07-21 00:47 scolia 阅读(4339) 评论(0) 推荐(1) 编辑
摘要: 反射运算 什么是反射运算符,其实就是反转了两个对象,下面先看一个普通运行符的实现: 在普通的加法运算中,调用的是+号左边的__add__方法,调用谁谁就为self。所以左边是self,右边为other,所以结果如上。 而反射运行其实就是交换这两者,下面看例子: 首先,不同的地方是这里调用的+后右边的 阅读全文
posted @ 2016-07-19 22:49 scolia 阅读(4335) 评论(2) 推荐(5) 编辑
摘要: 在比较的魔法方法中,我们讨论了魔法方法其实就是重载了操作符,例如>、<、==等。而这里,我们继续讨论有关于数值的魔法方法。 1.单目运算符或单目运算函数 __pos__(self) 实现一个取正数的操作(比如 +some_object ,python调用__pos__函数) __neg__(self 阅读全文
posted @ 2016-07-18 17:16 scolia 阅读(3038) 评论(0) 推荐(0) 编辑
摘要: 在python2.x的版本中,支持不同类型的比较,其比较原则如下: 内置类型: 1.同一类型: 1.1)数字类型:包含int、float、long、complex、bool(bool类型是int的子类,且True=1, False=0)。就按照数字的大小进行比较,例如: 1.2)非数字类型: 1.2 阅读全文
posted @ 2016-07-17 23:12 scolia 阅读(2425) 评论(0) 推荐(3) 编辑