编程技术

Ado.net的连接池

本篇文章起源于在GCRMVPOpenDay的时候和C#MVP张响讨论连接池的概念而来的。因此单独写一篇文章剖析一下连接池。为什么需要连接池剖析一个技术第一个要问的是,这项技术为什么存在。对于每一个到SQLServer的连接,都需要经历TCP/IP协议的三次握手,身份认证,在SQLServer里建立连接,分配资源等。而当客户端关闭连接时,客户端就会和SQLServer终止物理连接。但是,我们做过数据库开发的人都知道,每次操作完后关闭连接是再正常不过的事了,一

系统 2019-08-12 09:29:28 2354

编程技术

设计模式

对代码重用,可读性的一种设计模式。工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。解决问题:修改时关闭,扩展是开发,完全符合开放-封闭原则。工厂方法使一个类的实例化延迟到其子类。一个简单计算器,具有简单的加操作和减操作。结构如下图所示设计模式

系统 2019-08-12 01:32:42 2354

Python

Python线上环境使用日志的及配置文件

目录瞎比比与print相比logging有什么优势?基础用法保存到文件多模块使用logging使用配置文件配置logging瞎比比这篇文章其实早在一个月之前就写好了。奈何,加班猛如虎,真的怕了。直至今天才幸运地有了个双休,赶紧排版一下文章发布了。以下为正文。在初学Python的时候,我们使用print("helloworld")输出了我们的第一行代码。在之后的日子里,便一直使用print进行调试(当然,还有IDE的debug模式)。但是,当你在线上运行Py

系统 2019-09-27 17:55:27 2353

Python

python 数据存储

文章目录python常用数据存储方法txtjsoncsvmsyql安装pymysql连接建库建表插入删除修改查询mongodb安装连接建库建文档增删改查redis安装连接操作公用方法字符串列表集合有序集合散列其他sqlalchemypostgresqlmysqloracleMicrosoftSQLServersqlitepython常用数据存储方法txtwithopen('test.txt','w',encoding='utf8')asf:f.write(

系统 2019-09-27 17:54:52 2353

Python

很多企业开发语言从Python 转向了 Golang的原因

​很多企业开发语言从Python转向了Golang的原因​因为原生Python的性能真的是太捉襟见肘了。单机运行计算型任务,速度慢是有目共睹的。IO型人物不涉及多线程(比如用协程)的还好,一旦涉及到多线程,立刻懵逼。比如,你开个Python线程,让它sleep5秒,再开第二个线程,随便算个fibonacci或者直接写个busyloop,你就会发现你的程序实际上会sleep6秒。想突破也不难,用pybinding11写c++,再用python调用。但都这样了

系统 2019-09-27 17:54:29 2353

Python

python把转列表为集合的方法

set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。set语法:classset([iterable])参数说明:iterable--可迭代对象对象;返回值:返回新的集合对象。将列表转为集合:list1=[1,3,4,3,2,1]list1=set(list1)print(list1)结果如下:(1,2,3,4)扩展举例:python将3X4的矩阵列表转换为4X3列表matrix=[[1,2,3,4],[5,

系统 2019-09-27 17:53:49 2353

Python

Python面向对象编程——继承与派生

Python面向对象编程——继承与派生一、初始继承1、什么是继承继承指的是类与类之间的关系,是一种什么“是”什么的关系,继承的功能之一就是用来解决代码重用问题。继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可以成为基类或超类,新建的类称为派生类或子类2、python中类的继承分为:单继承和多继承classParentClass1:#定义父类passclassParentClass2:#定义父类passclassSubCl

系统 2019-09-27 17:53:48 2353

Python

弄懂这56个Python使用技巧(轻松掌握Python高效开发)

1.枚举-enumerate可以有参数哦之前我们这样操作:i=0foriteminiterable:printi,itemi+=1现在我们这样操作:fori,iteminenumerate(iterable):printi,itemenumerate函数还可以接收第二个参数。就像下面这样:>>>list(enumerate('abc'))[(0,'a'),(1,'b'),(2,'c')]>>>list(enumerate('abc',1))[(1,'a')

系统 2019-09-27 17:52:08 2353

Python

Python 模塊更新與安裝時出現錯誤

Python模塊更新與安裝時出現錯誤給Py裝個新的圖形庫模塊,結果安裝模塊時提示Youareusingpipversion19.0.3,howeverversion19.1.1isavailable.Youshouldconsiderupgradingviathe'pipinstall--upgradepip'command.好吧那當我們輸入pipinstall--upgradepip跑是能跑但是下載到一半就會報錯英文不好的我讀了一下報錯信息之後寫入了py

系统 2019-09-27 17:51:41 2353

Python

Python新手实现2048小游戏

接触Python不久,看到很多人写2048,自己也捣鼓了一个,主要是熟悉Python语法。程序使用Python3写的,代码150行左右,基于控制台,方向键使用输入字符模拟。演示图片2048.py#-*-coding:UTF-8-*-#!/usr/bin/python3importrandomv=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]defdisplay(v,score):'''显示界面'''print('{0:4

系统 2019-09-27 17:51:12 2353

Python

python函数的高级用法

一、引用传递引用传递,实质是在传递内存地址二、函数默认值1、默认值参数在python中可以为函数的参数给予默认值,一旦某个存在默认值,那么如果在调用的时候,不传递这个参数,则按照默认值注意:在定义函数时,如果存在有默认值的参数,一定要写在没有默认值的参数后面,否则在调用时,无法确定参数到底传给哪个参数,程序就会报错。三、全局变量和局部变量1、全局变量就是定义在py文件中,能被任何函数、类能够正常访问的变量。2、局部变量定义在函数内部的变量,叫做局部变量注意

系统 2019-09-27 17:50:00 2353

Python

Python shutil模块--文件拷贝与权限操作

目录基础部分shutil.copyfileobj(file1,file2):shutil.copyfile(file1,file2):其他shutil.copymode(file1,file2):shutil.copystat(file1,file2):shutil.copy(file1,file2):shutil.copy2(file1,file2):shutil.copytree(源目录,目标目录):shutil.rmtree(目标目录):shutil

系统 2019-09-27 17:49:33 2353

Python

Python 必备 debug 神器:pdb

使用介绍如何添加断点?说到debug,肯定是要添加断点的,这里有两种方式添加断点:在想要断点代码后添加一行pdb.set_trace()若是使用这种方式,直接运行Python文件即可进入断点调试。用命令行来添加断点bline_number若是使用这种方式,需要python-mpdbxxx.py来启动断点调试。常用命令先简单介绍一下使用命令,这里不用记住,等用到的时候回来查就行。1进入命令行Debug模式,python-mpdbxxx.py2h:(help)

系统 2019-09-27 17:48:35 2353

Python

梅尔频率倒谱系数(mfcc)及Python实现

语音识别系统的第一步是进行特征提取,mfcc是描述短时功率谱包络的一种特征,在语音识别系统中被广泛应用。一、mel滤波器每一段语音信号被分为多帧,每帧信号都对应一个频谱(通过FFT变换实现),频谱表示频率与信号能量之间的关系。mel滤波器是指多个带通滤波器,在mel频率中带通滤波器的通带是等宽的,但在赫兹(Hertz)频谱内mel滤波器在低频处较密集切通带较窄,高频处较稀疏且通带较宽,旨在通过在较低频率处更具辨别性并且在较高频率处较少辨别性来模拟非线性人类

系统 2019-09-27 17:48:18 2353

Python

Python rstrip函数踩坑记录

问题背景从许多中文的参考文献上,rstrip()函数的功能被简单描述为:删除字符串末尾的指定字符(默认为空格),我的理解是,直接去掉末尾指定的字符序列,如我传入的是d,则会去掉末尾的字符d(如果存在),如果传入了字符ad,则去掉末尾的字符ad(如果存在),直到我们开发的服务遇到了一个非常奇怪的bug之后,下面是奇怪问题的复现过程:>>>s='hello_world'>>>s.rstrip('d')#去除末尾的字符d'hello_worl'>>>>>>s.r

系统 2019-09-27 17:46:47 2353