python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等。创建函数修饰符的规则:(1)修饰符是一个函数(2)修饰符取被修饰函数为参数(3)修饰符返回一个新函数(4)修饰符维护被维护函数的签名例子1:被修饰函数不带参数deflog(func):defwrapper():print('log开始...')func()print('log结束...')returnwrapper@logdeftest():print('te
系统 2019-09-27 17:54:36 2281
本节开始,我们将讨论面向对象编程的三大特征:封装、继承和多态。下面,我们将由简至难,依次讨论封装、继承、多态。一.封装enclosure封装:指隐藏类的实现细节,让使用者不用关心这些细节;目的:让使用者通过尽可能少的方法(或属性)操作对象;如何封装:通过私有属性和方法;私有属性和方法:以双下划线'__'开头,不以双下划线结尾的标识符为私有成员;私有成员只能用此类的方法进行访问和修改扩展:了解java的读者可能知道,java中使用了private、defau
系统 2019-09-27 17:54:10 2281
一、*args的使用方法*args用来将参数打包成tuple给函数体调用defargs_test(x,y,*args):print(x,y,args)args_test(1,2,3,4,5)12(3,4,5)二、**kwargs的使用方法**kwargs打包关键字参数成dict给函数体调用defkwargs_test(**kwargs):print(kwargs)kwargs_test(a=1,b=2,c=3){'a':1,'c':3,'b':2}三.参数
系统 2019-09-27 17:54:08 2281
师父布置的任务,让我写一个服务练练手,搞清楚socket的原理和过程后跑了一个小demo,很有成就感,代码内容也比较清晰易懂,很有教育启发意义。代码#coding:utf-8importsocketfrommultiprocessingimportProcessHTML_ROOT_DIR=""defhandle_client(client_socket):"""处理客户端请求"""#获取客户端请求数据request_data=client_socket.r
系统 2019-09-27 17:53:32 2281
一、环境准备python3.6.7Pycharm二、创建项目我这里是在Django项目中新建了个APP,目录结构如下图所示:那么怎么在已有的Django项目中新建APP并进行配置呢:2.1、新建appa、可以在终端输入命令:pythonmanage.pystartappmyapp(这里myapp是指你自己app的名称),如下图所示:b、也可以在pycharm中找到Tools-->Runmanage.pyTask,在弹出的命令框中输入:startappmya
系统 2019-09-27 17:53:20 2281
Python3快速入门(十)——Python3网络编程一、socket模块简介Python提供了两个级别访问的网络服务,低级别的网络服务支持基本的Socket,提供了标准的BSDSocketsAPI,可以访问底层操作系统Socket接口的全部方法;高级别的网络服务模块SocketServer,提供了服务器中心类,可以简化网络服务器的开发。socket不支持多并发,socketserver是对socket的再封装,简化网络服务器版的开发。二、socket模块
系统 2019-09-27 17:53:15 2281
守护进程主进程创建子进程目的是:主进程有一个任务需要并发执行,那开启子进程帮我并发执行任务主进程创建子进程,然后将该进程设置成守护自己的进程关于守护进程需要强调两点:其一:守护进程会在主进程代码执行结束后就终止其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError:daemonicprocessesarenotallowedtohavechildren如果我们有两个任务需要并发执行,那么开一个主进程和一个子进程分别去执行就ok了,如果
系统 2019-09-27 17:52:46 2281
我在面试前,面试公司发来一道python题,我觉得还挺有意思的。题目如下。"""“”"我们知道2进制数字由2种字符(01)组成,10进制数字由10种字符(0123456789)组成,16进制由16种字符(0123456789ABCDEF)。不同进制的数字之间可以相互转换。我们定义一种“十二地支进制”数字,这种数字由中国古代地支的12种字符(子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥)组成。“十二地支进制”数字和10进制数字的关系可以看下面的代码。[["
系统 2019-09-27 17:52:33 2281
先看map。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。举例说明,比如我们有一个函数a(x)=x*2,要把这个函数作用在一个list[1,2,3,4,5]上,就可以用map()实现如下:复制代码代码如下:>>>defa(x):...returnx*2...>>>map(a,[1,2,3,4,5])[2,4,6,8,10]map传入的第一个参数a,即a函数,当然你也可以不用ma
系统 2019-09-27 17:52:06 2281
测试1deco运行,但myfunc并没有运行复制代码代码如下:defdeco(func):print'beforefunc'returnfuncdefmyfunc():print'myfunc()called'myfunc=deco(myfunc)测试2需要的deco中调用myfunc,这样才可以执行复制代码代码如下:defdeco(func):print'beforefunc'func()print'afterfunc'returnfuncdefmyfu
系统 2019-09-27 17:51:53 2281
基础篇JupyterNotebook优点整合所有的资源交互性编程体验零成本重现结果实践站点Jupyter官方GoogleResearch提供的Colab环境安装运行列表与元组列表和元组,都是一个可以放置任意数据类型的有序集合。l=[1,2,'hello','world']#列表中同时含有int和string类型的元素l[1,2,'hello','world']tup=('jason',22)#元组中同时含有int和string类型的元素tup('jason
系统 2019-09-27 17:50:12 2281
1.python连接数据库frompyhiveimporthiveconn=hive.Connection(host='xxxxxx',port=xxx,auth='CUSTOM',username='yourusername',password='yourpassword',database='default')cursor=conn.cursor()2.SQL代码封装设计为可传参方式defget_sql(d):d="'"+d+"'"add_sql_ho
系统 2019-09-27 17:49:01 2281
celery英文官方网站:www.celeryproject.org中文网站:http://docs.jinkan.org/docs/celery/celeryCelery是一个简单、灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具。专注于实时处理的任务队列,同时也支持任务调度。作用:解决耗时操作:开一个新的进程,去操作耗时操作,不影响原有进程定时操作,使Listitem用celery定时执行操作:定义一个任务task,也就是一个
系统 2019-09-27 17:48:28 2281
一、函数的介绍函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数函数的好处:代码重用保持一致,易于维护可扩展性二、函数的定义及调用2.1函数的定义函数的定义规则:函数代码块以def关键词开头,后接函数标识符名称和圆括号()任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数函数
系统 2019-09-27 17:48:26 2281
通常在我们进行多进程应用开发的过程中,不可避免的会遇到多个进程访问同一个资源(临界资源)的状况,这时候必须通过加一个全局性的锁,来实现资源的同步访问(即:同一时间里只能有一个进程访问资源)。举个例子如下:假设我们用mysql来实现一个任务队列,实现的过程如下:1.在Mysql中创建Job表,用于储存队列任务,如下:createtablejobs(idauto_incrementnotnullprimarykey,messagetextnotnull,job
系统 2019-09-27 17:47:47 2281