随笔 - 229  文章 - 0  评论 - 10  阅读 - 26万 

随笔分类 -  python

Flask_APScheduler的简单使用
摘要:首先安装: pip install flask_apscheduler from apscheduler.events import EVENT_JOB_EXECUTED, EVENT_JOB_ERROR from flask import Flask from flask_apscheduler 阅读全文
posted @ 2020-02-18 09:10 显示账号 阅读(1143) 评论(0) 推荐(0) 编辑
python中的"环绕通知"
摘要:跟java一样, 在不修改源码的情况,对某个方法进行前置 和 后置 功能添强 class Old(): def do_sth(self): print('do something....') class MiddleWare(): def __init__(self,old): self.old = 阅读全文
posted @ 2020-02-17 22:36 显示账号 阅读(232) 评论(0) 推荐(0) 编辑
装饰器03之多个装饰器的执行顺序
摘要:直接上代码 ,看打印结果便知 import functools def auth(func): @functools.wraps(func) def inner(*args, **kwargs): print('装饰器auth:在index函数调用之前做一些事。。。') ret = func(*ar 阅读全文
posted @ 2020-02-13 10:45 显示账号 阅读(267) 评论(2) 推荐(0) 编辑
装饰器02
摘要:在 装饰器01 中,index函数添加装饰器auth之后,index.__name__变成了inner, 但是我们可以使用functools工具让index.__name__ 仍然等于index. 代码如下: import functools def auth(func): @functools.w 阅读全文
posted @ 2020-02-13 10:33 显示账号 阅读(99) 评论(0) 推荐(0) 编辑
装饰器01
摘要:python中的装饰器相当于java中的切面,我们可以在它之前或之后做一些其它的事 def auth(func): def inner(*args, **kwargs): print('在index函数调用之前做一些事。。。') ret = func(*args, **kwargs) # 这儿的fu 阅读全文
posted @ 2020-02-13 10:20 显示账号 阅读(122) 评论(0) 推荐(0) 编辑
字符串的rsplit方法
摘要:''' rsplit() 方法语法: rsplit([sep=None][,count=S.count(sep)]) sep -- 可选参数,指定的分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 count -- 可选参数,分割次数,默认为分隔符在字符串中出现的总次数。 '' 阅读全文
posted @ 2020-02-11 23:09 显示账号 阅读(502) 评论(0) 推荐(0) 编辑
APScheduler的简单使用
摘要:from apscheduler.schedulers.blocking import BlockingScheduler from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.sched 阅读全文
posted @ 2020-02-11 20:46 显示账号 阅读(840) 评论(0) 推荐(0) 编辑
协程
摘要:进程和线程都是由操作系统控制调度的, 协程是是函数级别的调度,可以由程序员写代码控制 python中使用async和await两个关键字来支持原生协程 # python后期使用async和await两个关键字来定义协议, 这样就可以与生成器表示区别开来, 语义也更加明确 # 底层也是使用生成器来实现 阅读全文
posted @ 2019-12-28 20:58 显示账号 阅读(136) 评论(0) 推荐(0) 编辑
yield from语法的高级特性
摘要:def gen(): """子生成器""" yield 1 def gen1(gen): """委托生成器""" yield from gen def main(): """调用方""" g = gen() g1 = gen1(g) g1.send(None) # 启动生成器 上面的代码有3个角色, 阅读全文
posted @ 2019-12-27 22:42 显示账号 阅读(203) 评论(0) 推荐(0) 编辑
yield from语法应用
摘要:yield from 是python3.3中新增的语法, 语法结构: yield from iterable 在上一篇文章中自定义了一个my_chain函数,现在可以yield from方法对其进行精简 # 自定义一个chain def my_chain(*args, **kwargs): """注 阅读全文
posted @ 2019-12-27 21:52 显示账号 阅读(231) 评论(0) 推荐(0) 编辑
yield的应用:多个可迭代对象联合遍历
摘要:使用itertools工具类中的chain方法,可以很方便的将多个iterable对象一起遍历. 不过,对于dict类型的iterable对象,只会遍历key. from itertools import chain my_list = [1, 2, 3] my_dict = { 'name': ' 阅读全文
posted @ 2019-12-27 21:41 显示账号 阅读(213) 评论(0) 推荐(0) 编辑
dict字典元素按key或者value进行排序
摘要:使用python内置的sorted方法,可以很方便的对dict元素排序 if __name__ == '__main__': my_dict = {} my_dict['CD'] = 12 my_dict['XA'] = 60 my_dict['BJ'] = 15 my_dict['GZ'] = 1 阅读全文
posted @ 2019-12-27 21:38 显示账号 阅读(2989) 评论(0) 推荐(0) 编辑
list排序
摘要:使用sort方法,可以将list中的元素按自定义属性进行排序 class Person(object): def __init__(self, name, age): self.name = name self.age = age def __str__(self): return 'name:{} 阅读全文
posted @ 2019-12-27 21:26 显示账号 阅读(169) 评论(0) 推荐(0) 编辑
生成器高级特性2
摘要:生成器除了前面提到的send方法传参之外,还有两个比较重要的方法 close() : 关闭生成器. 关闭生成器之后,如果后面还想从生成器中值 ,会报错 throw() : 传个异常到生成器内部 def gen_func(): yield 1 yield 2 yield 3 if __name__ = 阅读全文
posted @ 2019-12-24 23:39 显示账号 阅读(150) 评论(0) 推荐(0) 编辑
time时间库使用示例
摘要:time时间库主要有以下几个方法 1. 生成struct_time ,然后就可以很方便的获取到年月日,时分秒等信息 time.localtime() 2. 生成时间戳 time.time() 3. 将struct_time 转成指定格式的时间字符串 time.strftime(format,stru 阅读全文
posted @ 2019-12-24 22:57 显示账号 阅读(800) 评论(0) 推荐(0) 编辑
生成器的高级特性
摘要:生成器不但可以产出值 ,还可以接收调用方的入参 举个例子 def gen_fun(): # 这种方式 ,即可产出值 ,也可以接收调用传进来的参数 html = yield "http://www.baidu.com" print(html) # 这种方式就只能产出值,不能接收调用方入参 yield 阅读全文
posted @ 2019-12-23 23:49 显示账号 阅读(179) 评论(0) 推荐(0) 编辑
fabric报错:Fatal error: run() received nonzero return code 1 while executing!
摘要:今天在使用fabric远程安装rpm时,一直报:Fatal error: run() received nonzero return code 1 while executing! 这看起来也是没笔病呀,但fabric就是这么蛋疼, 它在执行过程中, 如果执行命令返回非零, 就会中断后面的逻辑. 解 阅读全文
posted @ 2019-12-23 23:21 显示账号 阅读(1555) 评论(0) 推荐(1) 编辑
select编程[回调+事件循环]
摘要:感觉比java写起来还要忧伤..... """ select , poll,epoll 注意: epoll并不一定比select的性能好,这需要看场景 1. 在高并发场景,且连接活跃度不是很高的时候,epoll比select好, 比如web应用 2. 在并发不高,但连接很活跃的场景下,select 阅读全文
posted @ 2019-12-21 23:33 显示账号 阅读(568) 评论(0) 推荐(0) 编辑
进程间通信的4种方式
摘要:python提供了4种方式来满足进程间的数据通信 1. 使用multiprocessing.Queue可以在进程间通信,但不能在Pool池创建的进程间进行通信 2. 使用multiprocessing.Manager.Queue可以在Pool进程池创建的进程间进行通信 3. 通过Pipe进行线程间的 阅读全文
posted @ 2019-12-18 23:12 显示账号 阅读(1040) 评论(0) 推荐(0) 编辑
多进程编程
摘要:在 多线程与多进程的比较 这一篇中记录了多进程编程的一种方式. 下面记录一下多进程编程的别一种方式,即使用multiprocessing编程 import multiprocessing import time def get_html(n): time.sleep(n) print('sub pr 阅读全文
posted @ 2019-12-18 22:24 显示账号 阅读(151) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示