程#python2.7 #按照字节>>> a ="谢鹏程">>>printa[:3], a[3:6], a[6:9] 谢鹏程 二、装饰器 在不改变原有函数功能的基础上,执行函数前后增加某项功能。 开放封闭原则:软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。 1、装饰器的功能说明 通过一个例子来解释:...
我们再来简单分析一下装饰器的使用,以及@装饰器名的逻辑。 1、所谓装饰器,是以一个函数对象为参数,对其进行增强,返回一个新的函数对象的二阶函数。 2、@装饰器名的本质是:原函数名 = 装饰器(原函数对象),这条更新名称绑定关系的操作。 @装饰器的用法,并没有明确要求装饰器必须是函数对象,而且我们已经有了实...
装饰器函数即是通过python函数的这些特性来实现的,具体实现参见下面章节 不带参数的装饰器 既然装饰器是为了装饰函数、给原有函数增加特殊功能,说明最主要的还是要调用到被装饰函数,这样我们可以把被装饰函数做为参数传给装饰器,在装饰器中实现一个嵌套函数,此内嵌函数实现对被装饰函数的封装及调用,如下 >>>defdecora...
1、不带参数的装饰器函数: defwrapper(f):#装饰器definner():'''执行函数之前要做的'''print('葫芦娃葫芦娃,一根藤上七个娃。') ret= f()'''执行函数之后要做的''' print('风吹雨打都不怕,啦啦啦啦~')returnretreturninner @wrapper#语法糖@wrapper 相当于 func = wrapper(func)deffunc(*args,**...
在上篇基础(1)中,我写了一个装饰器及使用方法,但是如果遇到一个函数带返回值的话,就不好使了,因此重写一个装饰器如下: #basic2.py#coding:utf-8defauth(func):definner(*arg,**kwargs):print'before'temp=func(*arg,**kwargs)#这行是关键,func相当于fetch_server_listprint'after'returntemp#相当于返回...
上面的代码中,我们加了 list 转换,是为了兼容 Python3,在 Python2 中 map 直接返回列表,Python3 中返回迭代器。 reduce reduce函数的使用形式如下: reduce(function, sequence[, initial]) 解释:先将 sequence 的前两个 item 传给 function,即 function(item1, item2),函数的返回值和 sequence 的下一个 item...
python 浅析类方法与静态方法 方法(由@classmethod装饰的方法),可以被类或类的实例对象调用。 实例方法,第一个参数必须要默认传实例对象,一般习惯用self。对象方法中有self参数,类方法有cls参数,静态方法是不需要这些附加参数(在c++中,是没有类这个概念)。静态函数(@staticmethod):即静态方法,静态方法是一类特殊的方...
生成器(generator) 生成器是用来创建python序列的对象。生成器是一种迭代器,使用它可以迭代庞大的序列,且不需要在内存中创建和存储整个序列。 在python中,一个函数中如果使用了yield,那么这个函数就是一个生成器。 有关生成器内容点这里。 装饰器(decorator) ...
一、多个装饰器 1、当一个被装饰的对象同时叠加多个装饰器时规则: (1) 装饰器的加载顺序是:自下而上 (2)装饰器内wrapper函数的执行顺序是:自上而下 import time def timmer(func): #func=wrapper2的内存地址 def wrapper1(*args, **kwargs):
1.def 函数名(参数1,参数2): ''' 函数注释''' print('函数体') return 返回值 定义:def关键字开头,空格之后接函数名和圆括号,最后还要加一个冒号。 def是固定的,不能变。 函数名:函数名是包含字母,数字,下划线的任意组合,但是不能以数字开头。虽然函数名可以随便取名,但是一般尽量定义成可以表示函数功能的...