随笔分类 -  python

摘要:常用魔法函数(非数学运算类型) 字符串表示 \_\_repr\_\_ \_\_str\_\_ 集合序列相关 \_\_len\_\_ \_\_getitem\_\_ \_\_setitem\_\_ \_\_delitem\_\_ \_\_contains\_\_ 迭代相关 \_\_iter\_\_ \ 阅读全文
posted @ 2020-05-09 17:22 保军Baojun 阅读(202) 评论(0) 推荐(0)
摘要:上次用 python 脚本中定期查询数据库,监视订单变化,将时间与处理完成订单的数量进行输入写入日志,虽然省掉了人为定时查看数据库并记录的操作,但是数据不进行分析只是数据,要让数据活起来! 为了方便看出已完成订单的趋势,又不想想到使用Excel, 想到手动绘制表格填入数据就充满了抵触,哈哈,能用代码 阅读全文
posted @ 2019-09-11 19:27 保军Baojun 阅读(6507) 评论(0) 推荐(0)
摘要:在使用适配器模式之前,需要先认识一下以下__dict__内置函数 __dict__ 属性用于查看对象内部存储的所有属性名和属性值组成的字典 使用 __dict__ 属性既可查看对象的所有内部状态,也可通过字典语法来访问或修改指定属性的值,通常程序直接使用该属性即可 class Item: def _ 阅读全文
posted @ 2019-08-09 13:49 保军Baojun 阅读(123) 评论(0) 推荐(0)
摘要:使用工厂模式时,每个工厂类中属性和实现都是定义好的,比如有一个小米手机的工厂,生产Mi9和MIX3,你要一个Mi9就给你个Mi9,参数属性都是一样的 如图: 代码: 因为生产线已经固定好了,生产的手机也是一样的,但是如果希望可以定制手机配置就不行了,试试构造模式吧! 如图: 代码: 阅读全文
posted @ 2019-08-08 11:01 保军Baojun 阅读(313) 评论(0) 推荐(0)
摘要:1. 单例模式: a. 使用import python中的模块是天然的单例 b.使用装饰器 上面装饰器的方法实现了单例,当A被第一次实例化为a时,self.a = 'sss', 下次b = A('fffff')时,装饰器判定A类已经有了实例,就会直接返回实例a,此时b=a,并未进行实例化,而是引用赋 阅读全文
posted @ 2019-08-06 11:10 保军Baojun 阅读(148) 评论(0) 推荐(0)
摘要:设定一个场景,在用户了添加多个任务,点击run task按钮在后台处理这些tasks,并判断task成功或失败,因为task是耗时的,所以采用多线程方式处理tasks 考虑: 线程启动后如何获取task执行结果? 看代码: 运行结果: 上面代码实现了创建线程执行task,并获取任务,关键点在于线程类 阅读全文
posted @ 2019-08-04 19:53 保军Baojun 阅读(3112) 评论(0) 推荐(0)
摘要:题目: 一个列表,要分为N组,定义一套规则,实现算法: 解: 看到这个题目的时候我首先想到了数据库的水平分表,利用主键id取余的方式将数据平均存放在N张表中,可以利用一下: 阅读全文
posted @ 2019-06-17 01:24 保军Baojun 阅读(154) 评论(0) 推荐(0)
摘要:知识点总结1 PEP8 规范 每一级缩进使用4个空格。 空格是首选的缩进方式。 行限制的最大字符数为79 使用下划线分隔的小写字母 类名一般使用首字母大写的约定 异常名后面加上“Error”后缀 全局变量前加下划线的方式(表明这些全局变量是模块内非公有)。 函数名应该小写 None这样的单例对象进行 阅读全文
posted @ 2019-06-10 21:29 保军Baojun 阅读(323) 评论(0) 推荐(0)
摘要:1.在socket.listen()后创一个epoll对象 epoll = select.epoll() 2.将server_socket注册到epoll中 epoll.register( ) 3. conn_dict = dict() 用来保存新的socket对象和对应的fd和关系 addr_di 阅读全文
posted @ 2019-04-15 17:31 保军Baojun 阅读(293) 评论(0) 推荐(0)
摘要:这里不解释celery,如果不清楚可以参考下面链接: http://docs.celeryproject.org/en/latest/getting-started/introduction.html 这里来演示一下在Django项目中如何使用celery: 1. 首先我们需要使用到两个库,用pip 阅读全文
posted @ 2019-03-30 23:39 保军Baojun 阅读(725) 评论(1) 推荐(0)
摘要:接受表达式的元组可以是嵌套式的,例如 (a, b, (c, d))。只要这个 接受元组的嵌套结构符合表达式本身的嵌套结构,Python 就可以作出正 确的对应。 用嵌套元组来获取经度: ❶ 每个元组内有 4 个元素,其中最后一个元素是一对坐标。 ❷ 我们把输入元组的最后一个元素拆包到由变量构成的元组 阅读全文
posted @ 2019-03-29 17:33 保军Baojun 阅读(672) 评论(0) 推荐(0)
摘要:元组在结构上更像是不可变的列表,但是它的作用不仅如此,在《流畅的Python》中有一句解释: 元组其实是对数据的记录:元组中的每个元素都存放了记录中一个字段 的数据,外加这个字段的位置。正是这个位置信息给数据赋予了意义。 如果只把元组理解为不可变的列表,那其他信息——它所含有的元素的 总数和它们的位 阅读全文
posted @ 2019-03-29 14:12 保军Baojun 阅读(579) 评论(0) 推荐(0)
摘要:序列是支持 + 和 * 操作的。通常 + 号两侧的序列由 相同类型的数据所构成,在拼接的过程中,两个被操作的序列都不会被 修改,Python 会新建一个包含同样类型数据的序列来作为拼接的结果。 如果想要把一个序列复制几份然后再拼接起来,更快捷的做法是把这个 序列乘以一个整数。同样,这个操作会产生一个 阅读全文
posted @ 2019-03-28 14:17 保军Baojun 阅读(239) 评论(0) 推荐(0)
摘要:Python 2.x 中,在列表推导中 for 关键词之后的赋值操作可能会影响列表推导上下文中的同名变量。像下面这个 Python 2.7 控制台对话: 如你所见,i 原本的值被取代了,但是这种情况在 Python 3 中是不会出现的: 列表推导、生成器表达式,以及同它们很相似的集合(set)推导和 阅读全文
posted @ 2019-03-27 21:34 保军Baojun 阅读(543) 评论(0) 推荐(0)
摘要:可以看出,三种方法都实现了多重循环的跳出,但是从代码可读性上讲,我更推荐使用第二种,函数封装多循环 阅读全文
posted @ 2019-03-25 17:17 保军Baojun 阅读(771) 评论(0) 推荐(0)
摘要:一. 剖析一下生成器对象 先看一个简单的例子,我们创建一个生成器函数,然后生成一个生成器对象 表示G是一个生成器对象,我们来剖析一下,里面到底有什么 大家注意看有4个很特殊的函数close(),next(),send(),throw(),next()在python中的生成器(一)中已经介绍过了,今天 阅读全文
posted @ 2019-03-24 00:32 保军Baojun 阅读(154) 评论(0) 推荐(0)
摘要:我们先考虑一个场景: 有个情景需要循环输出1——10. 这里给两种方法: 两种方式输出结果一样,但是我们考虑一下,如果要求输出1——1000000呢? 第一种方式会导致list1里面真实放入1000000长度的数字,占用空间很大,明显不是明智之举, 再来看第二种方法,用到range帮助我们生成数据, 阅读全文
posted @ 2019-03-22 14:11 保军Baojun 阅读(397) 评论(0) 推荐(0)
摘要:import traceback def _mode(): print "hi " print traceback.extract_stack()[-2][2] def fun1(): _mode() def fun2(): _mode() if __name__ == '__main__': fu 阅读全文
posted @ 2019-03-21 18:13 保军Baojun 阅读(2237) 评论(0) 推荐(0)