![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
百雨
希望在工作过程中将问题与解决方案记录下来
展开
-
python装饰器与偏函数
一、什么是偏函数?(1)在Python的functools模块众多的功能中,其中有一个就是偏函数,我们称之为 partial function模块的概念我们下一篇在细讲。(2)我们都听过偏将军吧,在三国时代的官制中,系将军的辅佐,与裨将军两者都为杂号将军;今天我们要讲的偏函数,其实是函数的辅佐,什么意思呢,我们借助Python的help帮助函数,看一下:这里我...转载 2020-02-05 12:55:32 · 182 阅读 · 0 评论 -
python 实例方法、静态方法、类方法应用场景
转自https://blog.csdn.net/weixin_43567965/article/details/86499385 方法即函数,函数即方法 1.实例方法/对象方法实例方法或者叫对象方法,指的是我们在类中定义的普通方法。只有实例化对象之后才可以使用的方法,该方法的第一个形参接收的一定是对象本身! 2.静态方法(1)...转载 2019-01-16 09:13:40 · 3912 阅读 · 0 评论 -
python __del__自动回收
对象消失或再无引用时自动调用__del__。class Person: def __init__(self): print('init....') def __del__(self): print('对象内存回收了')person = Person()print('程序结束') (二)引用情况...原创 2019-01-16 09:44:18 · 622 阅读 · 0 评论 -
python 复写静态方法__new__之单例模式
目录(一)出现问题之复写__new__忘记返回(二)解决方法之利用父类的__new__创建对象并返回(三)单例模式(一)出现问题之复写__new__忘记返回class Person(object): # 初始化 def __init__(self): print('init......') # def __new__(c...原创 2019-01-16 10:41:42 · 675 阅读 · 1 评论 -
python 多个子线程与主线程一起抢CPU
本文只是针对自身的提醒,全篇可以转 https://blog.csdn.net/weixin_44239385/article/details/86568695import timeimport threading # 导入threading模块def sing(): for i in range(3): print('正在唱歌', i) ...原创 2019-01-21 22:09:49 · 881 阅读 · 0 评论 -
python消费者问题(同步)
目录 (一)我一步你一步(二)我先走,你就不能比我脚先着地(加锁)(一)我一步你一步Queue.task_done() 在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号Queue.join() 实际上意味着等到队列为空,再执行别的操作加了这俩兄弟就能做一碗吃一碗了import threadingfrom queue im...原创 2019-01-22 11:46:44 · 788 阅读 · 0 评论 -
python 计算两数之间质数和
质数:只能被1本身整除 最小的质数是2,所以加if i >= 2: 筛除负数 a = int(input('输入a:'))b = int(input('输入b:'))sum = 0for i in range(a, b+1): k = 2 if i >= 2: while i % k != 0: k +=1...原创 2019-01-29 15:59:06 · 3979 阅读 · 0 评论 -
python实现socket聊天
先运行服务端再运行客户端就好服务端:import socketserverclass MyServer(socketserver.BaseRequestHandler): # handle是对socketserver.BaseRequestHandler里面handle的重写,所以只能handle为名字 def handle(self): while...原创 2019-03-13 21:43:32 · 857 阅读 · 0 评论 -
python @classmethod 的使用场合
我的发现:类方法只能找类变量,不能访问实例变量,官方的说法: @classmethod是用来指定一个类的方法为类方法,没有此参数指定的类的方法为实例方法,使用方法如下: class C: @classmethod def f(cls, arg1, arg2, ...): ... 看后之后真是一头雾水。说的啥子东西呢??? 自己到国外的论坛看其他的例子和解...转载 2019-01-16 00:27:40 · 179 阅读 · 0 评论 -
python派生属性
属性的覆盖(派生属性):子类也可以添加自己新的属性或者在自己这里重新定义这些属性(不会影响到父类),需要注意的是,一旦重新定义了自己的属性且与父类重名,那么调用新增的属性时,就以自己为准了(属性的覆盖)。 ...原创 2019-01-15 20:26:30 · 711 阅读 · 0 评论 -
python 是否复写父类的init区别
- 子类继承父类,如果子类不复写父类的__init__()方法, 创建子类对象的时候会自动调用父类__init__()方法。 - 子类继承父类,如果子类复写了父类的__init__()方法, 创建的子类对象的时候不会再调用父类的__init__() 方法。 - 注意:python要求复写父类的__init__()方法时,需要调用父类的__init__() ...原创 2019-01-15 20:23:31 · 699 阅读 · 0 评论 -
python三个自带装饰器的功能与使用(@property、@staticmethod、@classmethod)
转自:https://www.cnblogs.com/ArmoredTitan/p/8550892.html(一)property装饰器功能:通过property装饰器控制类的属性的绑定与获取,一般就是给某个属性增加一个验证类型等功能。 能够通过实例直接点出属性值来,更加方便快捷,如例三中student.age:例一:错误效果:class Student(object)...原创 2019-01-17 21:41:00 · 419 阅读 · 0 评论 -
python函数把可变数据类型当默认参数值的问题
转自:https://www.cnblogs.com/gpd-Amos/p/8998059.html#_label0 python函数中把列表(list)当参数时的"入坑"与"出坑" 阅读目录入坑出坑优化 在Python函数中,传递的参原创 2019-01-03 09:41:39 · 2047 阅读 · 0 评论 -
python 装饰器、内部函数、闭包简单理解
python 装饰器、内部函数、闭包简单理解 python内部函数、闭包共同之处在于都是以函数作为参数传递到函数,不同之处在于返回与调用有所区别。1、python内部函数python内部函数示例:?12345678def test(*args):   &am转载 2019-01-03 13:45:26 · 139 阅读 · 0 评论 -
python 使用 max函数求字典的最大值(lambda表达式)
(一)铺垫------------------------------原始做法-------------------------------# 求两个数的中的最大的值def func(x, y): if x < y: return y else: return xret = func(30, 20)print(ret) ...原创 2019-01-07 20:57:13 · 26799 阅读 · 4 评论 -
python飞机项目第一阶:绘制屏幕分析(很细的那种)
目录 (一)创建的屏幕是何时存在何时关闭的(二)死循环防止屏幕自裁(三)创造和接收事件 (四)下面给屏幕上个色 (五)为了更好地理解过程之屏幕颜色渐变(一)创建的屏幕是何时存在何时关闭的第一点:运行后,800 * 400的屏幕先出现,经过3秒后就自动关闭了(尽管我们没有关闭它的语句),屏幕是自己关闭的。第二点:只要构造屏幕的语句下面还有语句要执行,它就不会自裁,...原创 2019-01-13 22:49:18 · 785 阅读 · 0 评论 -
python利用__dict__可以修改私有变量
(1) me.__age = -2这种修改方式对私有变量无法修改。而我们通过print(me.__dict__)打印出{'_Person__age': 80, 'name': 'z', '__age': -2}知道,我们的__age在字典中是以键_Person__age保存,所以我们给键重新赋值就能修改__age。了解即可class Person: def __init__(self...原创 2019-01-14 21:32:39 · 737 阅读 · 0 评论 -
python自定义异常及原理
(1) ShortInputException('短了。。。')这个对象继承了Exception类。(2)raise了这个对象,被父类接收作为 e,(3)print(e)默认调用e的__str__魔法方法。注意,非自定义异常也是默认重写了Exception的__str__方法。class ShortInputException(Exception): def __init...原创 2019-01-25 14:50:14 · 1112 阅读 · 0 评论 -
python super()用法之 类内类外使用
当子类和父类有相同的方法的时候,子类默认会调用自己的方法而不能使用父类的方法。如果想使用父类的方法,我们就可以使用super()方法来调用父类的方法1.super(类名,对象名).方法() ------------>既可以在类的内部也可以在类的外部使用。2.父类类名.方法名(self)------------------->Animal.eat(self) 既可以在内部也可...原创 2019-01-15 19:43:56 · 1835 阅读 · 0 评论 -
python打印菱形三种方法
第一种(自己想的,有点麻烦):rows = int(input('请输入菱形边长:\n'))row = 1while row <= rows: col = 1 # 保证每次内循环col都从1开始,打印前面空格的个数 while col <= (rows-row): # 这个内层while就是单纯打印空格 print(' ', en...原创 2019-03-14 22:04:20 · 87606 阅读 · 9 评论 -
python的GIL
GIL 是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。多进程中因为每个进程都能被系统分配资源,相当于每个...原创 2019-05-30 15:06:44 · 120 阅读 · 0 评论 -
简述面向对象中__new__和__init__区别
__init__是初始化方法,创建对象后,就立刻被默认调用了,可接收参数,如图1、__new__至少要有一个参数cls,代表当前类,此参数在实例化时由Python解释器自动识别2、__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以return父类(通过super(当前类名, cls))__new__出来的实例,或者直接是object的__...原创 2019-05-30 15:50:53 · 4631 阅读 · 0 评论 -
多线程飞秋socket聊天
from socket import *from threading import Threadfrom time import ctimedef send(send_socket, ip, port): while True: # 冒号隔开--》1:版本,2:消息的序号,3:用户名,4:主机名,5:指令(32是发送指令) # 发送前编码 ...原创 2019-06-20 21:35:20 · 272 阅读 · 1 评论 -
2000年1月1日到今天有多少周一?
直接代码吧:import datetimeimport timed1 = datetime.datetime(2000, 1, 1) # 第一个日期weekday = datetime.datetime(2000, 1, 1).strftime("%w") # 6 算出2000年1月1日是周几now = time.strftime('%Y-%m-%d', time.local...原创 2019-07-31 10:17:39 · 529 阅读 · 0 评论 -
多个线程写一个文件不冲突
代码用锁就好了:from threading import Threadimport threadinglock = threading.Lock()def write(num): # 保存数据 name = "Threading"+num i = 1 while i <4: if lock.acquire(): ...原创 2019-07-31 10:43:22 · 1180 阅读 · 0 评论 -
银行钱数(带小数位)转大写
摘自:https://blog.csdn.net/u011043775/article/details/78283939# 钱数转大写def convertNumToChinese(totalPrice): dictChinese = [u'零',u'壹',u'贰',u'叁',u'肆',u'伍',u'陆',u'柒',u'捌',u'玖'] unitChinese = [u'...原创 2019-07-23 15:44:01 · 1369 阅读 · 0 评论 -
python身份证校验
验证规则如下:长度必须为18位;格式为:前17位是数字,最后一位是数字或者x(不区分大小写);前6位是地区码,必须存在;第7位到12位是出生日期,必须是存在的日期;最后一位是验证位,规则必须匹配;输入为一个身份证号的字符串;输出为一个tuple:0 - 是否是身份证;1 - 错误信息或者所属地区;实现代码如下:注:测试用的身份证号是在网上找的,无意冒犯,...转载 2019-08-06 21:24:59 · 2762 阅读 · 0 评论 -
高效的利用pandas读取多个sheet的excel文件
如何更快更高效的利用pandas读取多个sheet的excel文件?我们知道pandas的读取excel文件的常规方式是pd.read_excel(file, sheetname),我想很多人都是用这种常规的方式进行读取。其实,sheetname是可以是数字的,代表每一个sheet的排序编号。我们用python运行效率分析工具来看一下不同的模式下,他们的执行速度分别是怎么样的?...转载 2019-08-22 14:42:41 · 29871 阅读 · 0 评论 -
线程锁注意事项
前提:定义锁lock = threading.Lock()其次:如果lock.acquire()请求不到锁,会一直等待,等请求到锁后再打开文件写入。acquire()中有一个blocking=true,请求不到锁就一直阻塞在if lock.acquire():这一句。即,文件写入一定会执行,# 保存数据if lock.acquire(): with open('j...原创 2019-05-09 18:50:52 · 303 阅读 · 0 评论 -
多线程之join不让主线程抢子线程们的cpu
(一)以爬虫中的多线程为例主要看main里面的内容,即:if __name__ == '__main__': # 1、创建任务队列。存放所有任务 page_queue = Queue() for page in range(1,61): page_queue.put(page) # 2、生成线程 start = time.time(...原创 2019-05-08 15:51:07 · 398 阅读 · 0 评论 -
线程的join方法详解
转:https://www.cnblogs.com/lyuweigh/p/9568697.html首先 join有什么用? 他是用来确定线程何时结束的 ,Thread提供了两种方法来确定线程何时结束,isAlive这里不做阐述,字面意思,字面用法final void join() throws InterruptedExpetionOracle官方教程上面关于join是这样说...转载 2019-03-22 15:47:18 · 342 阅读 · 0 评论 -
paramiko远程登录与sftp文件传输
(一)基于用户名密码的远程登录加命令执行import paramiko#创建ssh链接实例ssh = paramiko.SSHClient()#创建白名单,默认不询问, 即允许连接不在known_hosts文件中的主机known_hosts = paramiko.AutoAddPolicy()ssh.set_missing_host_key_policy(known_hosts)...原创 2019-03-22 23:00:52 · 2149 阅读 · 0 评论 -
django 项目搭建
框架部分,安装尽量采用沙盒环境,我们使用anaconda(一)在anaconda中创建Django开发的环境Python 3.6.2Django 2.1命令:conda create -n DjangoPath python=3.6.2(二)在DjangoPath沙箱里安装jango包和依赖包并导出安装好的包的目录方便下次安装(1)先启动沙箱Activate D...原创 2019-03-27 15:50:26 · 560 阅读 · 0 评论 -
socket文件下载超细讲解
(一)目录结构展示(二)代码及讲解(注释很详细了)服务端代码:import osimport socketsock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)sock.bind(("127.0.0.1", 8000))sock.listen(5)con, client_addr = sock.accept...原创 2019-04-01 01:09:35 · 772 阅读 · 0 评论 -
Django基于模板实现的超链接一大坑点
(一)坑点解析准备坑点之前注意我们所有的链接请求都会被urls处理,用到的有这俩views里面有这俩:(二)坑点开始既然是超链接,就会涉及斜杠 / 这里提醒一点:在a标签里的href指向的路径中,在开头加上斜杠是指从根目录开始找,开头不加斜杠表示从当前页开始找(一)问题示例比如:http://127.0.0.1:8000/urlTest/中有一个s跳...原创 2019-03-28 18:06:25 · 947 阅读 · 0 评论 -
预激协程的装饰器及wraps说明
如果不激活协程,那么协程没什么用,调用averager().send(x)之前一定要调用next(averager())来激活,为了简化协程用法,有时候会使用预激装饰器:import functools# 定义预激装饰器def coroutine(func): """装饰器函数""" # @functools.wraps(func) def primer(*ar...原创 2019-04-21 21:14:38 · 253 阅读 · 0 评论 -
多线程、多进程、协程图片下载
# import re## #import this# ----------------------------------普通正则匹配---------------------------------# #python之禅# example = """# <html># <head># <title># ...原创 2019-04-14 23:46:25 · 183 阅读 · 0 评论 -
md5加密
md5加密特点:(1)加密不可逆(2)不管多大字符串,加密结果都32位下面两种其实是一样的import hashlibdef set_password(password): """ 登录的hash加密 """ md5 = hashlib.md5() md5.update(password.encode()) resutl = md...原创 2019-04-19 15:41:42 · 148 阅读 · 0 评论 -
pip install 没反应怎么办
用 python -m pip install 便可原创 2019-03-22 15:29:03 · 16431 阅读 · 3 评论 -
python 类中的方法互相调用为什么是self.function()形式
因为,不加self, 你可能会执行类外的同名函数eatdef eat(thing): print(thing,'--->执行了类外函数')class Dog: def eat(self, thing): print('执行了类内函数', thing) def run(self): eat(2)Dog().run()...原创 2019-01-17 20:58:32 · 6030 阅读 · 3 评论