def

python多线程编程-queue模块和生产者-消费者问题

混江龙づ霸主 提交于 2021-01-04 16:41:58
摘录python核心编程 本例中演示生产者-消费者模型:商品或服务的生产者生产商品,然后将其放到类似队列的数据结构中。生产商品中的时间是不确定的,同样消费者消费商品的时间也是不确定的。 使用queue模块(python2.x版本中,叫Queue)来提供线程间通信的机制,从而让线程之间可以分享数据。具体而言,就是创建一个队列,让生产者(线程)在其中放入新的商品,而消费者(线程)消费这些商品。 下表是queue模块的部分属性: 属性 描述 queue模块的类 Queue(maxsize=0) 创建一个先入先出队列。如果给定最大值,则在队列没有空间时阻塞;否则,为无限队列 LifoQueue(maxsize=0) 创建一个后入先出队列。如果给定最大值,则在队列没有空间时阻塞;否则,为无限序列 PriorityQueue(maxsize=0) 创建一个优先级队列。如果给定最大值,则在队列没有空间时阻塞;否则,为无限序列 queue异常 Empty 当对空队列调用get*()方法时抛出异常 Full 当对已满的队列调用put*()方法时抛出异常 queue对象方法 qsize() 返回队列大小。(由于返回队列大小时可能被其他线程修改,所以该值为近似值) empty() 如果队列为空,则返回True,否则返回False full() 如果队列已满,则返回True,否则返回False put

你会使用super()吗?你确定你了解它吗?

喜欢而已 提交于 2021-01-04 08:53:10
我们经常在类的继承当中使用super(), 来调用父类中的方法。例如下面: class A: def func(self): print('OldBoy') class B(A): def func(self): super().func() print('LuffyCity') A().func() B().func() 输出的结果为: OldBoy OldBoy LuffyCity A实例化的对象调用了func方法,打印输出了 Oldboy ; B实例化的对象调用了自己的func方法,先调用了父类的方法打印输出了 OldBoy ,再打印输出 LuffyCity 。 这样是Python3的写法,今天咱们也只讨论Python3中的super。 如果不使用super的话,想得到相同的输出截个,还可以这样写B的类: class B(A): def func(self): A.func(self) print('LuffyCity') 这样能实现相同的效果,只不过传了一个self参数。那为什么还要使用super()呢? 那我看看有这样的一个继承关系的类(钻石继承): Base / \ / \ A B \ / \ / C 代码是这样的: class Base: def __init__(self): print('Base.__init__') class A(Base): def _

python, ImageFont

情到浓时终转凉″ 提交于 2021-01-04 08:36:44
ImageFont模块定义了相同名称的类,即ImageFont类。这个类的实例存储bitmap字体,用于ImageDraw类的text()方法。 PIL可以配置是否支持TrueType和OpenType字体 一、ImageFont模块的函数 1、 Load 定义:ImageFont.load(file)⇒ Font instance 含义:从指定的文件中加载一种字体,该函数返回对应的字体对象。如果该函数失败,将产生IOError异常。 2、 Load_path 定义:ImageFont.load_path(file)⇒ Font instance 含义:和函数load()一样,但是如果没有指定当前路径的话,会从sys.path开始查找指定的字体文件。 3、 Truetype 定义1:ImageFont.truetype(file,size) ⇒ Font instance 含义1:加载一个TrueType或者OpenType字体文件,并且创建一个字体对象。这个函数从指定的文件加载了一个字体对象,并且为指定大小的字体创建了字体对象。 在windows系统中,如果指定的文件不存在,加载器会顺便看看windows的字体目录下是否存在。 这个函数需要_imagingft服务。 定义2:ImageFont.truetype(file,size, encoding=value) ⇒ Font

hashlib模块

纵然是瞬间 提交于 2021-01-04 08:00:52
摘要算法 就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest, 目的是为了发现原始数据是否被人篡改过。 摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数, 计算f(data)很容易, 但通过digest反推data却非常困难。 而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。 计算出一个字符串的MD5值: import hashlib md5 = hashlib.md5() md5.update('how to use md5 in python hashlib?'.encode('utf-8')) print(md5.hexdigest()) 计算结果如下: d26a53750bc40b38b65a520292f69306 如果数据量很大,可以分块多次调用update() 另一种常见的摘要算法是SHA1,调用SHA1和调用MD5完全类似: import hashlib sha1 = hashlib.sha1() sha1.update('how to use sha1 in '.encode('utf-8')) sha1.update('python hashlib?'.encode('utf-8')) print(sha1.hexdigest()) 摘要算法不是加密算法,不能用于加密(因为无法通过摘要反推明文)

keras02

故事扮演 提交于 2021-01-04 07:34:35
本项目参考: https://www.bilibili.com/video/av31500120?t=4657 训练代码 1 # coding: utf-8 2 # Learning from Mofan and Mike G 3 # Recreated by Paprikatree 4 # Convolution NN Train 5 6 import numpy as np 7 from keras.datasets import mnist 8 from keras.utils import np_utils 9 from keras.models import Sequential 10 from keras.layers import Convolution2D, Activation, MaxPool2D, Flatten, Dense 11 from keras.optimizers import Adam 12 from keras.models import load_model 13 14 15 nb_class = 10 16 nb_epoch = 4 17 batchsize = 128 18 19 ''' 20 1st,准备参数 21 X_train: (0,255) --> (0,1) CNN中似乎没有必要?cnn自动转了吗? 22

模块—— 序列化模块、random模块、os模块 、 sys模块、hashlib模块、collections模块

不打扰是莪最后的温柔 提交于 2021-01-04 06:40:41
今天我们来说说Python中的模块: 第三方模块 可以下载/安装/使用 第一步:将pip. exe 所在的目录添加到环境变量中 第二步:输入pip 第三步:pip install 要安装的模块名称 #pip install xlrd 报错原因: 要求更新模块:python36 -m pip install --upgrade pip 安装成功不能导入:重启pycharm、重新安装 自定义模块   随着程序代码越写越多,不易维护,所以我们把函数分组,放在不同的文件中,这样每个文件的代码块就较少,一个.py文件就是一个自定义模块 第一种 直接import 这里有个大前提,就是你的py执行文件和模块同属于同个目录(父级目录),如下图: ​ 执行文件main. py 和 模块文件pwcong模块同在python目录 pwcong模块提供的函数写在 __init__. py 里,里面只提供一个 hi 函数: def hi(): print( "hi") 执行文件main. py直接import自定义模块 ​ import pwcong pwcong. hi() 第二种 通过sys模块导入 如果执行文件和模块不在同一个目录下,这时用import是找不到自定义模块的 import sys sys. path. append( r"C:\Users\Pwcong\Desktop\python")

kubernetes安装(基于CentOS7,kubeadm)

岁酱吖の 提交于 2021-01-04 04:01:25
kubeadm可以帮助你快速部署一套kubernetes集群。kubeadm设计目的为新用户开始尝试kubernetes提供一种简单的方法。不适用于生产环境。 1、安装要求及目标 禁止swap分区(kubernetes不支持) 可以访问外网 集群机器之间网络互通 所以节点上安装Docker和kubeadm 部署Kubernetes Master 部署网络管理插件 部署Kubernetes Node,将节点加入Kubenetes集群中 部署Dashboard Web页面,可视化查看Kubernetes资源 关闭防火墙: systemctl stop firewalld && systemctl disable firewalld 关闭selinux: sed -i ' s/enforcing/disabled/ ' /etc/selinux/ config setenforce 0    # 使设置生效 getenforce     # 查看 关闭swap: swapoff - a # 临时关闭 sed -i 's/.\\*swap.\\*/#&/' /etc /fstab # 永久关闭 添加主机名与IP对应关系: vim /etc/hosts 192.168 . 174.138 k8s- master 192.168 . 174.139 k8s- node1 192.168 .

03python面向对象编程5

岁酱吖の 提交于 2021-01-03 16:54:41
5.1 继承机制及其使用 继承是面向对象的三大特征之一,也是实现软件复用的重要手段。Python 的继承是多继承机制,即一个子类可以同时有多个直接父类。 Python 子类继承父类的语法是在定义子类时,将多个父类放在子类之后的圆括号里。语法格式如下: In [2]: # class Subclass (SuperClass1, SuperClass2, ...): # #类定义部分 从上面的语法格式来看,定义子类的语法非常简单,只需在原来的类定义后增加圆括号,井在圆括号中添加多个父类,即可表明该子类继承了这些父类。 如果在定义一个 Python 类时并未显式指定这个类的直接父类,则这个类默认继承 object 类。因此,object 类是所有类的父类,要么是其直接父类,要么是其间接父类。 实现继承的类被称为子类,被继承的类被称为父类(也被称为基类、超类)。父类和子类的关系,是一般和特殊的关系。例如水果和苹果的关系,苹果继承了水果,苹果是水果的子类,则苹果是一种特殊的水果。 由于子类是一种特殊的父类,因此父类包含的范围总比子类包含的范围要大,所以可以认为父类是大类,而子类是小类。 从实际意义上看,子类是对父类的扩展,子类是一种特殊的父类。从这个意义上看,使用继承来描述子类和父类的关系是错误的,用扩展更恰当。因此,这样的说法更加准确:Apple 类扩展了 Fruit 类。

Python学习(四十一)—— Djago进阶

女生的网名这么多〃 提交于 2021-01-02 19:18:57
一、分页 Django的分页器(paginator) view from django.shortcuts import render,HttpResponse # Create your views here. from app01.models import * from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger def index(request): ''' 批量导入数据: Booklist=[] for i in range(100): Booklist.append(Book(title="book"+str(i),price=30+i*i)) Book.objects.bulk_create(Booklist) ''' ''' 分页器的使用: book_list=Book.objects.all() paginator = Paginator(book_list, 10) print("count:",paginator.count) #数据总数 print("num_pages",paginator.num_pages) #总页数 print("page_range",paginator.page_range) #页码的列表 page1=paginator.page(1)

干货丨如何使用时序数据库寻找相似的历史k线

老子叫甜甜 提交于 2021-01-02 18:32:46
有网友提问 应该用什么样的数据库/数据结构/算法来计算某支股票的相似K线? 具体的问题描述是,假设给出某股某段行情K线(单位/日),从任何其他股票历史中匹配出与之最为相似的某段历史K线,并给出相似度值(单位/%),并以此排序,获取最为相似的N个结果。 我们可以使用k线的距离以及股票日回报的相关性来衡量k线相似度,使用 Tushare 提供的沪深股票2008年到2017年的日线行情数据来做实验。如何把Tushare数据导入到 DolphinDB database 可以参考教程 如何使用DolphinDB处理Tushare金融数据 。 Tushare提供的沪深股票日线行情数据包含以下字段: 名称 描述ts_code 股票代码trade_date 交易日期open 开盘价high 最高价low 最低价close 收盘价pre_close 昨收价change 涨跌额pct_change 涨跌幅vol 成交量(手)amount 成交额(千元) 下面将以漫步者(股票代码为002351.SZ)为例,介绍如何在历史数据中,找出与漫步者2016年9月1日到2016年9月30日最为相似的10段历史k线。 首先,把漫步者2016年9月1日到2016年9月30日的日线行情数据加载到内存。 code="002351.SZ"//漫步者edifier=select * from loadTable("dfs:/