- 博客(128)
- 收藏
- 关注
翻译 Python:网络编程:SocketServer
SocketServersocket编程过于底层,编程虽然有套路,但是想要写出健壮的代码还是比较困难的,所以很多语言都对socket底层 API进行了封装,Python的封装就是------socketserver模块,它是网络服务编程模块,便于企业级快速开发类的继承关系SocketServer简化了网络服务器的编写它有4个同步类:TCPServer、UDPServer、UnixStramServer、UnixDatagramServer2个Mixin类:ForkingMixi
2021-07-17 11:09:58
728
原创 Python:UDP编程、心跳机制、UDP的应用场景
UDP服务端编程流程1、创建服务端流程创建socket的对象。socket.SOCK_DGRAM 绑定IP和Port,bind方法 传输数据 接受数据,socket.recvform(bufsize,[,flags]),获得一个二元组(string,address) 发送数据,socket.sendto(string,address)发给某地址信息 释放资源import socketsercice_udp = socket.socket(type=socket.SOCK_
2021-07-10 19:48:13
1472
6
原创 Python:网络编程、TCP客户端编程
TCP客户端编程步骤客户端编程步骤创建Socket对象 连接到远端服务器的IP和Port,connect()方法 传输数据 使用send,recv发送、接受数据 关闭连接、释放资源简单步骤
2021-07-04 12:47:03
241
2
原创 Python:网络编程TCP、MackfFile、聊天编写
Socket介绍socket套接字:Python中提供socket.py标准库,非常底层的接口库Socket是一种通用的网络编程接口,和网络层次没有一一对应的关系Socket文件本身就是传输用, 传输的话就要有一个东西来缓冲,说到地就是BUffer,BUffer其实就是个队列协议族:AF表示Address Family,用于socket() 第一个参数名称 含义 AF_INET IPV4 AF_INET6 IPV6 AF_UNIX Unix Domain
2021-07-04 08:01:15
420
6
原创 Python:concurrent异步并行任务编程模块、 线程池、进程池、上下文管理
目录concurrent包ThreadPoolExecutor对象ProcessPoolExecutor对象支持上线文管理总结concurrent包3.2版本引入的模块。异步并行任务编程模块,提供一个高级的异步可执行的便利接口。提供2个池执行器:ThreadPoolExcentor 异步调用线程池的ExecutorProcessPoolExecutor 异步调用的进程池的ExecutorThreadPoolExecutor对象首先需要定义一个池的执行器对..
2021-06-27 16:32:59
577
2
原创 Python:多进程multiprocessing,多进程和多线程的应用
多进程由于Python的GIL,多线程未必是CPU密集型程序的好的选择多进程可以完全独立的进程环境中运行程序,可以充分地利用多处理器但是进程本身的隔离代理的数据不共享也是一个问题,而且线程比进程轻量级multiprocessingProcess类Process类遵循了Thread类的API,减少了学习难度;先看一个例子,前面介绍的单线程、多线程比较的例子的多进程版本import multiprocessingimport datetimedef cacl(i):
2021-06-27 10:00:29
715
2
原创 Python:信号量semaphore
semaphone信号量和Lock很像,信号量对象内部维护一个倒数计数器,每一次acquire都会减1,当acquire方法发现计数为0就阻塞请求的线程,直到其他的线程对信号量release后,计数大于0,恢复阻塞的线程名称 含义 Semaphore(value=1) 构造方法。value小于0,抛ValueError异常 acquire(blocking=True,timeout=None) 获取信号量,计数器减1,获取成功返回True releas...
2021-06-26 12:10:52
1120
原创 Python:线程同步,Barrier屏障
Barrier屏障有人翻译成栅栏,建议还是使用屏障,可以想象成路障,道闸,Python3.2引入的新功能
2021-06-20 22:38:13
901
2
原创 Git:Git分支概念、Pycharm中使用使用分支
分支branch注:以下操作都在Pycharm中完成,其他IDE都可以实现类似的功能,Git命令较为麻烦
2021-06-20 12:48:40
2990
转载 gogs的坑:fatal: Could not read from remote repository.
首页 博客 专栏课程 下载 问答 社区 更多 代码直播代码 会员中心收藏动态消息创作中心gogs同一个坑进去两次...weixin_342504342018-05-28 00:51:14948收藏文章标签:git运维runtime版权工程师小C的小店更多我也想开通小店Python编程三剑客:Python编程从入门到实践第2版+快速上手第2版+极客编程(套装共3册)作者:[美] 埃里克·马瑟斯(Eric M...
2021-06-20 00:05:00
2008
1
原创 Linux:搭建GIT服务,Linux中使用git,git基础命令,和原理
GIT由来:Linux内核代码需要版本管理工具维护代码,2002年开始,使用的是BitMover公司的BitKeeper这个商用软件。但是Linux社区崇尚的是自由软件相勃,2005年,Andrew Tridell对BitKeeper的协议进行逆向工程,BitKeeper作者决定收回无偿使用授权。磋商无果,Linus又找不到合适的版本管理工具,决定自行开放分布式版本管理工具,一个月后,Linux内核代码被GitHub上线。2008年,基于WEB使用Git进行版本控制的软件托管服务的网站GitH
2021-06-19 19:37:07
1168
原创 Gogs:使用过程中遇到的坑
1、访问页面报500;日志:[Macaron] PANIC: session(start): mkdir data: permission denied页面:日志:原因:gogs想要创建 data目录,它没有权限导致的解c[root@bogon gogs]# mkidr data #创建data目录 [root@bogon gogs]# chow -R git:git /home/git/gogs/d...
2021-06-14 20:51:31
1602
原创 Linux:搭建Gogs服务,页面报错Failed to test ‘git‘ command: exec: “git“: executable file not found in $PATH
1、安装Mysql【这里安装的时Percona Mysql >5.7】官网下载安装包:https://www.percona.com/downloads/Percona-Server-5.7/LATEST/2、上传到LInux下解压安装[root@localhost percona_mysql]# tar -xvfPercona-Server-5.7.34-37-r7c516e9-el7-x86_64-bundle.tar3、安装安装包[root@localhost pe..
2021-06-14 18:15:08
2798
2
原创 Python:线程同步,Event事件、Lock锁,RLock锁、Condition消费者模型
线程同步概念:线程同步,线程间协同,通过某种技术,让一个线程访问某些数据时,其他线程不能访问这些数据,直到该线程完成对数据的操作 不同的操作系统实现的技术有所不同,有临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、时间Even等EventEvent时间,是线程间通信机制中最简单的实现,使用一个内部的标记Flag,通过Flag的True或False的变化来进行操作名称 含义 set() 标记设置为True cle.
2021-06-13 20:54:03
1106
2
原创 Python:线程与并发、Threading、线程安全、daemon线程
并发:基本概念并发和并行区别并行(parallel):同时做某些事,可以互不干扰的同一个时刻做几件事 并发(concurrency):也是同时做某些事,但是强调,一个时间段内有事情处理举例:乡村公路一条车道,半幅路面出现了坑,交警指挥交通。众多车辆在这一时段通过路面的事件,这就是并发。交警指挥,车辆排队通过另外半幅路面,一个方向放行3分钟,停止该方向通行,换另一个方向放行高速公路的车道,双向4车道,所有车辆(数据)可以互不干扰的在自己的车道上奔跑(传输)。在同一个时刻,每条车道上可能同时.
2021-06-05 20:31:34
1281
3
原创 性能之巅:常用性能分析方法
目录为了便于总结,这些方法已经被归类成了不同的类型1、街灯讹方法2、随机变动讹方法3、责怪他人讹方法4、AdHoc核对清单法5、问题陈述法6、科学法7、诊断循环8、工具法9、USE方法10、工作负载特征归纳11、向下挖掘分析12、延时分析13、R方法14、事件跟踪15、基础线统计16、静态性能调整17、缓存调优18、微基准测试为了便于总结,这些方法已经被归类成了不同的类型方法 类型 街灯讹方法 观测分析 .
2021-05-30 23:56:00
3668
4
原创 Python:类的魔术方法、Hash、可视化、运算符重载、容器相关
类的特殊方法属性 含义 __name__ 类、函数、方法等的名字 __module__ 类定义所在的模块明 __class__ 对象或类所属的类 __bases__ 类的基类元组,顺序为他们在基类列表中出现的顺序 __doc__ 类、函数的文档字符串,如果没有定义则为None __mro__ 类的mro,class.mro()返回结果保存在__mro__中 __dict__ 类或实例的属性,可写字典 __subclasse
2021-05-24 07:47:44
594
3
原创 Python:类魔术方法、反射、描述器
类的特殊方法属性 含义 __name__ 类、函数、方法等的名字 __module__ 类定义所在的模块明 __class__ 对象或类所属的类 __bases__ 类的基类元组,顺序为他们在基类列表中出现的顺序 __doc__ 类、函数的文档字符串,如果没有定义则为None __mro__ 类的mro,class.mro()返回结果保存在__mro__中 __dict__ 类或实例的属性,可写字典 __subclasse
2021-05-16 17:54:56
520
2
原创 Python:生成手机号码数
题目:编写一个函数,该函数接受10个整数(0到9之间)的数组,该函数以电话号码的形式返回这些数字的字符串。create_phone_number([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) # => returns "(123) 456-7890"解答:方案一def create_phone_number(list): #your code here return f"({list[0]}{list[1]}{list[2]})"+" " + f.
2021-05-09 23:45:40
1151
原创 Python:类的多继承
目录Python不同版本的类多继承多继承弊端 Python多继承实现多继承的缺点MixinMixin类Python不同版本的类Python2.2之前是没有共同的祖先的,之后引入Object类,它是所有类的共同祖先类Object Python2中为了兼容,分为古典类(旧式类)和新式类 Python3中全部都是新式类 新式类都是继承自Object的,新式类可以使用super#古典类在python2.x中运行class A: passprint...
2021-05-09 18:38:03
817
4
原创 Python:类的单继承
类的继承面向对象三要素之一,继承Inheritance人类和猫类都继承自动物类。个体继承自父母,继承了父母的一部分特征,但也可以有自己的个性。在面向对象的世界中,从父类继承,就可以直接拥有父类的属性和方法,这样就可以减少代码、多服用。子类可以定义自己的属性和方法class Animal: def __init__(self,name): self._name = name def shout(self): print("{} sh
2021-05-09 11:01:55
879
2
原创 Python:面向对象
Python中一切皆对象面向对象的三要素封装 组装:将数据和操作组装到一起 隐藏数据:对外暴露一些接口,通过接口访问对象。比如驾驶员使用汽车,不需要了解汽车的构造细节,只需要知道怎么使用部件,怎么驾驶就行,踩了油门就能跑,可以不了解后面的激动原理 ...
2021-05-05 22:35:50
912
14
原创 Python练习题 :随机生成一批数
1、题目:指定生成一批数的个数,并可以指定数的范围"""1、随机整数生成器可以指定一批生成的个数、可以指定数值的范围、可以调整每批数字的个数"""import randomclass Random_integer: def __init__(self,count,integer_start= 1,integer_stop= 100): self.count = count self.integer_start = integer_start
2021-04-29 06:55:22
418
原创 Python:类型注解、inspect
函数定义的弊端Python是动态语言,变量随时可以被赋值,且能赋值为不同的类型Python不是静态编译型语言,变量类型是在运行器决定的动态语言很灵活,但是这种特性也是弊端def add(x,y): return x + yprint(add(1,2))print(add("Hello","Word"))print(add(1,"Word")) #Python是强类型这里会报错难发现:由于不做任何类型检查,直到运行期问题才显现出来,或者线上运行时才能暴露出问 题
2021-04-24 22:29:28
629
原创 Python:funtools模块、覆盖被装饰的函数模块名、名称、限定名、文档、参数注解
update_wrapperdef update_wrapper(wrapper, wrapped,assigned = WRAPPER_ASSIGNMENTS,updated = WRAPPER_UPDATES):类似copy_properties功能 wrapper 包装函数、被更新者,wrapped 被包装函数、数据源 元组WRAPPER_ASSIGNMENTS中是要被覆盖的属性【'__module__', '__name__', '__qualname__', '__doc__',
2021-04-17 10:31:37
393
1
原创 Python:函数 ----》装饰器函数
目录引入装饰器【无参】文档字符串带参装饰器引入一个加法函数,想增强它的功能,能够输出被调用过以及调用的参数信息def add(x, y): return x + y用嵌套函数、柯里化来解决def add(x,y): return x + ydef logger(fn): def _loger(*args,**kwargs): print("函数开始运行") ret = fn(*args,**kw...
2021-04-10 22:13:20
341
原创 Python:高阶函数,柯里化Currying
高阶函数First Class Object函数在Python中是一等公民 函数也是对象,可调用的对象 函数也是对象,可调用的对象高阶函数数学概念 y=g(f(x)) 在数学和计算机学科中,高阶函数应当是至少满足下面一个条件的函数 接受一个或多个函数作为参数 输出一个函数 栈里面存放的是,函数的变量,压栈过程是有序的,堆里面存放的是调用函数的对象的变量,是无序的内键高阶函数【常用的】排序:sorted(iterable[, key][, reverse])返.
2021-04-10 15:30:59
299
2
原创 Mysql:插入中文失败,校对集问题(数据比较的方式)、Web乱码问题
目录插入中文失败校对集问题(数据比较的方式)Web乱码插入中文失败中文数据问题本质就是字符集问题计算机识别二进制:人类更多是识别符号:需要由两个二进制与字符的对应关系(字符集)原因是:客户端与服务端编不统一问题;服务器没有识别对应的四个字节:服务器认为数据是UTF8,一个汉字有三个字节:读取三个字节转化成汉字(失败),剩余的读在读取三个字节(不够):最终失败GBK:2个字节数是一个汉字UTF-8:3个字节数是一个汉字分析:1、查看服务器支持哪些字符集..
2021-04-05 21:22:20
205
原创 Python:bytes、bytearray
bytes、bytearrayPython3引入两个新类型bytes:不可变字节序列 bytearray:字节数组、可变字符串与bytes字符串是字符组成的有序序列,字符可以使用编码来理解bytes是字节组成的有序的不可变序列bytearray是字节组成的有序的可变序列编码与解码字符串按照不同的字符集编码encode返回字节序列bytesencode(encoding='utf-8', errors='strict') -> bytes字节序列...
2021-04-04 20:26:55
1147
原创 Python:小数据池,深浅复制
我们来看一个小知识点复制list1 = list(range(5))list2 = list(range(5))print(list1 == list2) #返回的是Trueprint(list1 is list2) #返回的是False【==】只是对值得比较 ;【is】是对内存地址的判断赋值 【只是把内存的指针的发生了改变】这个过程有没有发生复制?list1 = list(range(5))list2 = list(range(5))list...
2021-04-04 16:44:29
345
1
原创 Python:递归函数
递归函数的定义:函数直接或间接调用自身就是递归 递归函数需要有边界、递归前进段、递归返回段 递归一定要有边界条件 当边界不满足的时候,递归前进 当边界条件满足的时候,递归返回斐波那契数列【用递归来实现】用for循环来看是怎么写的:...
2021-03-23 23:11:45
398
原创 Docker:Docker安装、基本命令
Docker体系Docker分为Docker-CE、Docker-EE,Docker-CE是社区版本免费 Docker-EE是企业级版本是收费的这里我们安装的是Docke-CEyum源准备构建docker的yum源[root@localhost yum.repos.d]# curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo.
2021-03-08 20:34:14
524
原创 Docker:简介
什么是容器容器是指容纳其他物品的工具,物体可以被放置在容器内,容器可以保护其中内容物;Linux容器发展之路容器技术的概念最初出现在 2000 年,当时称为FreeBSD jail,这种技术可将FreeBSD系统分区为多个子系统(也称为 Jail)。Jail 是作为安全环境而开发的,系统管理员可与企业内部或外部的多个用户共享这些 Jail通过Jail技术在Linux中的实现这个项目被叫做VServer,在完成了这项针对 Linux 中多个受控制用户空间的基础性工作后,Linux ...
2021-03-06 20:48:11
401
原创 Python:生成器函数,yield from
引入生成器generator:生成器指的是生成器对象,可以由生成器表达式得到,也可以使用yield关键字得到一个生成器函数,调用这个函数得到一个生成器对象生成器函数:函数体中包含yeild语句的函数,返回生成器对象 生成器对象,是一个可迭代对象,是一个迭代器 生成器对象,是延迟求值,惰性求值的yield与return的比较遇到yield,函数就会让出此次操作,去执行函数体别的语句 return,直接打断函数的执行,返回结果普通函数,生成器函数的比较例子一: 单个yiel
2021-03-06 16:44:26
435
原创 Python:匿名函数 lambda
匿名函数顾名思义:即没有名字没有名字那输入调用这个函数? 没有名字如何调用? 最关键的是如何使用这个函数?Python中是借助lambda表达式构建匿名函数的尼?格式:【lambda 参数列表 : 表达式】lambda x : x * 2调用:(lambda x : x * 2 ) (4) 匿名函数:使用lambda 关键子来定义函数 参数列表不需要小括号 冒号是用来分割参数列表和表达式的 不需要使用return,表达式的值就是匿名函数的表达值 lambda表...
2021-03-04 23:12:10
271
4
原创 爬虫:Chrome、Firefox 、IE、Selenium浏览器驱动下载安装
Chrome webdriver下载下载地址:https://chromedriver.storage.googleapis.com/index.html查看自己的chrome浏览器的版本,于webdriver的驱动相同下载适合自己chrome浏览器的webdrvier
2021-03-02 23:37:38
747
原创 Python:函数的销毁
全局函数销毁方法一:重新定义同名函数def foo(a): return aprint(foo(1),id(foo),foo.__defaults__)def foo(a): return aprint(foo(1),id(foo),foo.__defaults__)结果:1 26875848 None 1 27317784 None函数的ID,不同,说明这是两个不同的函数方法二:使用del 【报错:NameError: name 'foo' .
2021-02-28 21:16:36
1535
原创 Python:函数默认值的作用域【__defaults__】【__kwdefaults__】
例子:引入def foo(abc=[]): abc.append(200) print(abc)foo()foo()结果:[200] [200, 200]第二次调用为什么问什么打印的是[ 200,200],而不是[ 200 ]?因为函数即对象,python把函数的默认值放在了属性中,这个属性就伴随着这个函数对象的 整个生命周期,和abc这个变量没有关系,abc调用玩就消失了 可查看foo.__defaults__属性查看例子:函数值的默认值是可变类型
2021-02-28 20:53:59
5620
5
原创 Python:闭包函数,nonlocal使用
嵌套函数:什么是嵌套函数使用外部函数中变量def out(): x = 5 def inn(): print("inn函数中 x = {}".format(y)) print("out函数中 x = {}".format(x)) inn()out()结果:inn函数中 x = 5out函数中 x = 5内部函数是可以引用外部函数的变量【仅限于定义内部函数的外部函数】修改外部变量中函数def out(): x .
2021-02-28 11:16:44
683
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅