方法一:使用装饰器装饰器维护一个字典对象instances,缓存了所有单例类,只要单例不存在则创建,已经存在直接返回该实例对象。defsingleton(cls):instances={}defwrapper(*args,**kwargs):ifclsnotininstances:instances[cls]=cls(*args,**kwargs)returninstances[cls]returnwrapper@singletonclassFoo(obj
系统 2019-09-27 17:52:23 2439
进程之间共享数据(数值型):importmultiprocessingdeffunc(num):num.value=10.78#子进程改变数值的值,主进程跟着改变if__name__=="__main__":num=multiprocessing.Value("d",10.0)#d表示数值,主进程与子进程共享这个value。(主进程与子进程都是用的同一个value)print(num.value)p=multiprocessing.Process(targ
系统 2019-09-27 17:51:28 2439
wxPython是Python语言的一套优秀的GUI图形库。允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。只要介绍了如何利用wxPython实现吗按钮和对按钮的监听,并且改变了按钮的字体和颜色。python代码如下:#-*-coding:utf-8-*-importwxclassFrame(wx.Frame):def__
系统 2019-09-27 17:50:32 2439
CalStatistics.pydefgetNum():#获取用户不定长度的输入nums=[]iNumStr=input("请输入数字(回车退出):")whileiNumStr!="":nums.append(eval(iNumStr))iNumStr=input("请输入数学(回车退出):")returnnumsdefmean(numbers):#计算平均值s=0.0fornuminnumbers:s=s+numreturns/len(numbers)d
系统 2019-09-27 17:50:32 2439
最近有同学询问如何利用Python处理xml文件,特此整理一个比较简洁的操作手册,供大家参阅。首先准备一个xml文件,xml中的内容如下所示。存储为:student.xml如果要获取这个xml里面的数据,我们需要利用Python里面ElementTree来进行处理。具体操作如下所示:1、导入包(包是Python内置自带)2、打开文件,并获取根节点的属性和节点名称运行代码后,结果如下所示:3、利用find方法获取子节点(缺点:只能根据提供的名称获取第一个子节
系统 2019-09-27 17:46:57 2439
前言因近期进行时间序列分析时遇到了数据预处理中的缺失值处理问题,其中日期缺失和填充在网上没有找到较好较全资料,耗费了我一晚上工作时间,所以下面我对这次时间序列缺失值处理学习做了以下小结以供之后同行们参考指正。时间序列缺失值处理一、编程前准备收集时间序列数据,相信看这篇博客的各位已经完成了这步。需要安装pandas模块,并利用Python的Lib文件夹自带的datetime库(当时我因为在Pycharm环境中没看到datetime模块又去安装了DateTim
系统 2019-09-27 17:46:41 2439
1、形参和实参的区别形参就是形式上的参数,可以理解为数学的X,没有实际的值,通过别人赋值后才有意义。相当于变量。实参就是实际意义上的参数,是一个实际存在的参数,可以是字符串或是数字等。2、参数类型位置参数、默认参数、可变参数、关键字参数【1】位置参数调用函数时,必须将函数调用中的每个实参都关联到函数定义中的一个形参。关联方式是基于实参的顺序,这被称作位置实参defgetinfo(name,age):print('姓名:',name,'年龄:',age)ge
系统 2019-09-27 17:45:25 2439
python中,list这种数据结构很常用到,如果两个或者多个list结构相同,内容类型相同,我们通常会将两个或者多个list合并成一个,这样我们再循环遍历的时候就可以一次性处理掉了。所以如何将两个或者多个list合并成一个就是我们接下来要讲的内容哦python合并list方法1,运算符:list1=[1,2,3]list2=[4,5,6]list3=list1+list2print(list3)方法2,extend()方法:list1=[1,2,3]li
系统 2019-09-27 17:38:22 2439
HTTP暴力破解、撞库,有一些惯用的技巧,比如:1.在扫号人人网时,我遇到单个账号错误两次,强制要求输入验证码,而对方并未实施IP策略。我采用维护10万(用户名,密码)队列的方式来绕过验证码。具体的做法是,当某个用户名、密码组合遇到需要验证码,就把该破解序列挂起,放到队列尾部等待下次测试,继续破解其他账号密码。这样就可以保证2/3的时间都在进行正常破解和扫号。2.在破解美团网某系统账号时,我遇到了单个IP访问有一定限制,请求频率不可过快。于是我挂了72个H
系统 2019-09-27 17:56:03 2438
importbase64importskimage.ioimportmatplotlib.pyplotaspltdefbase64_to_rgb(base64_str):"""默认base64中的图像为rgb,直接转换成即可:parambase64::return:"""ifisinstance(base64_str,bytes):base64_str=base64_str.decode("utf-8")imgdata=base64.b64decode(b
系统 2019-09-27 17:54:57 2438
一、类定义:class<类名>:<语句>类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象类的私有属性:__private_attrs两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问在类内部的方法中使用时self.__private_attrs类的方法在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个
系统 2019-09-27 17:48:03 2438
Python中的时间处理包datetime和arrow在获取贝壳分的时候用到了时间处理函数,想要获取上个月时间包括年、月、日等#方法一:today=datetime.date.today()#1.获取「今天」first=today.replace(day=1)#2.获取当前月的第一天last_month=first-datetime.timedelta(days=1)#3.减一天,得到上个月的最后一天print(last_month.strftime("%
系统 2019-09-27 17:47:23 2438
本文实例介绍了Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法,具体内容如下python正则表达式关键内容:python正则表达式转义符:.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束\W匹配任意不是字母,数字,下划线,汉字的字符\S匹配任意不是空白符的字符\D匹配任意非数字的字符\B匹配不是单词开头或结束的位置[^x]匹配除
系统 2019-09-27 17:38:29 2438
string.Template()string.Template()内添加替换的字符,使用"$"符号,或在字符串内,使用"${}";调用时使用string.substitute(dict)函数.可以通过继承"string.Template",覆盖变量delimiter(定界符)和idpattern(替换格式),定制不同形式的模板.代码:#-*-coding:utf-8-*-importstringtemplate_text='''''Delimiter:%
系统 2019-09-27 17:38:10 2438
函数使用单下划线_开头使用单下划线(_)开头的函数_func不能被模块外部以:frommoduleimport*形式导入。但可以用:frommoduleimport_func形式单独导入。类属性和类方法使用单下划线_开头_开头为保护类型的属性和方法,仅允许类内部和子类访问,类实例无法访问此属性和方法。类属性和类方法使用双下划线__开头__开头为私有类型属性和方法,仅允许类内部访问,类实例和派生类均不能访问此属性和方法。所以双划线比单划线权限更严格。补充说明
系统 2019-09-27 17:56:53 2437