在Python中,装饰器的本质就是Python中的一个函数,其来源自Python面向对象。装饰器是在函数调用之上的修饰。这些修饰仅是当声明一个函数或方法的时候,才会被应用额外的调用。有点类似Java中的AOP(面向方面编程)。同时在设计模式中,还有装饰器模式,也即是:装饰器模式(DecoratorPattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。原则是:不修改被修饰函数的源代码,不修改被修饰函数的调用方式。装饰器的用途:引入日志增加计时
系统 2019-09-27 17:55:09 1866
Mac中python多版本切换管理step1.$sudovi~/.bashrcstep2.命令行中输入aliaspython2=’/…/Versions/2.x/bin/python2.x’aliaspython3=’/…/Versions/3.x/bin/python3.x’Step3.刷新$source~/.bashrcStep4、验证在终端输入python2即代表是Python2.x版本,输入python3即代表是Python3.x版本。Mac设置默
系统 2019-09-27 17:55:04 1866
Python语言有一个比较Pythonic的功能,也是一个具有很强大功能的特性,那就是装饰器。1.Python装饰器的原理Python中的装饰器是通过利用了函数特性的闭包实现的,所以我们需要了解Python闭包的原理,以及函数的功能特性。1.1函数特性函数作为变量传递defadd(x):returnx+1a=add(5)print(a)#运行结果:6函数作为参数传递defadd(x):returnx+1defexecute(f):returnf(3)pri
系统 2019-09-27 17:54:59 1866
前言做网络爬虫的同学肯定见过各种各样的验证码,比较高级的有滑动、点选等样式,看起来好像挺复杂的,但实际上它们的核心原理还是还是很清晰的,本文章大致说明下这些验证码的原理以及带大家实现一个滑动验证码。实际上这类验证码的校验是分为两个步骤的:1.第一步就是前端的校验。一般来说,登录注册页面在点击提交的时候都会伴随着一个表单提交,在表单提交的时候会有JavaScript事件的触发。如果加入了验证码,那么在表单提交的时候会多加一个额外的验证,判断这个验证码是否已经
系统 2019-09-27 17:54:32 1866
最近在学习Python,所谓好记性不如烂笔头故借这次学习机会做个笔记,方便今后快速再学习。以下是常见函数的使用说明:range函数该函数用于创建数列,根据参数个数不同对应不同的用法进行说明(1)range(a,b,c)三个参数时,表示创建一个从a~b-1的数组,每c个数取一个值。当c=1时,可省略c,即用法等同于(2)(2)range(x,y)两个参数时,表示创建一个从a~b-1的数组,一共b-a个元素。当x=0时,可省略y,用法等同于(1)(3)rang
系统 2019-09-27 17:53:51 1866
Python面向对象编程——封装从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,还有alex一起装进麻袋,然后把麻袋封上口子。照这种逻辑看,封装=‘隐藏’,这种理解是相当片面的。一、先看如何隐藏在python中用双下划线开头的方式将属性隐藏起来(设置成私有的)#其实这仅仅这是一种变形操作#类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的形式:classA:__N=0#类的数据属性就应该是共享的,但是语法上是可以把类的
系统 2019-09-27 17:53:36 1866
1.类型转换importpandasaspdimportdatetime一般我们拿到日期型数据时,基本都是字符串表示的,该如何将其转换为日期型和日期时间型。法1:dt='2019/06/1316:16:39'd='2017-04-24'str2datetime=datetime.datetime.strptime(dt,'%Y/%m/%d%H:%M:%S')str2date1=datetime.datetime.strptime(d,'%Y-%m-%d')
系统 2019-09-27 17:53:36 1866
python默认环境一般是ascii编码方式,因此Python自然调用ascii编码解码程序去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinalnotinrange(128))。参考可通过如下方式查看默认环境编码方式:importsysprintsys.getdefaultencoding()问题解决有两种方式:1、修改默认环境编码方式为utf-8importsysreload(sys)#不加这个会报”找不到setdefaultenc
系统 2019-09-27 17:52:42 1866
Python命令行之旅:使用argparse实现git命令作者:HelloGitHub-ProdesireHelloGitHub的《讲解开源项目》系列,项目地址:https://github.com/HelloGitHub-Team/Article前言在前面三篇介绍argparse的文章中,我们全面了解了argparse的能力,相信不少小伙伴们都已经摩拳擦掌,想要打造一个属于自己的命令行工具。本文将以我们日常工作中最常见的git命令为例,讲解如何使用arg
系统 2019-09-27 17:52:36 1866
前言学习一个库的最好的方式是了解这个库的源码和组成原理,有时候源码可能会略显生涩,这时候我们想通过查看文档来了解,所以我们可以通过输出库自带的描述文档来了解一个库。Numpy和Scipy模块numpy提供了数组对象,面向的任何使用者。scipy在numpy的基础上,面向科学家和工程师,提供了更为精准和广泛的函数。scipy几乎实现numpy的所有函数,一般而言,如果scipy和numpy都有这个函数的话,应该用scipy中的版本,因为scipy中的版本往往
系统 2019-09-27 17:52:27 1866