装饰器:本质是函数,作用是为其他函数添加附加功能 原则: 1.不改变被装饰函数的源代码 2.不改变被装饰函数的调用方式 实现装饰器需要先实现那些功能呢? 1.函数就是“变量”,将函数体赋予函数名,就可以在内存中存在了 # def dec():# print('this is dec')# bar() ...
分类:
其他好文 时间:
2017-01-13 22:06:44
阅读次数:
166
python3 编码默认为unicode,unicode和utf-8都是默认支持中文的。 如果要python3的编码改为utf-8,则或者在一开始就声明全局使用utf-8 #_*_coding:utf-8_*_ 或者将字符串单独声明: a = "中文".encode("utf-8") 函数式编程 函 ...
分类:
编程语言 时间:
2017-01-12 12:58:49
阅读次数:
299
关于函数的return li = [11,22,33,44] def f1(arg): arg.append(55) li = f1(li) print(li) 因为li = f1(li) 实际赋值的是f1的return,那么在这种情况下函数f1并未定义return,所以默认返回None 因此li的 ...
分类:
编程语言 时间:
2017-01-12 12:56:40
阅读次数:
374
上一篇文章开始的时候提到 “一般来说,装饰器是一个函数,接受一个函数(或者类)作为参数,返回值也是也是一个函数(或者参数)” 有一般情况,就有特殊情况。第一种特殊情况:装饰器可能也是一个类;第二种特殊情况:装饰器返回的对象的类型不一定等同于被装饰对象的类型。 对于第一种情况,我们知道对于任何call ...
分类:
编程语言 时间:
2017-01-12 12:05:53
阅读次数:
166
面向对象的高级语法: 静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢? 其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和 类变量的 ...
分类:
编程语言 时间:
2017-01-11 14:29:41
阅读次数:
274
在廖雪峰的官方网站学习装饰器章节时,初步理解类似与面向切面编程。记录一下自己的课后习题解法。 ...
分类:
编程语言 时间:
2017-01-10 13:28:28
阅读次数:
309
/* 装饰器 简单理解为C#中的Attribute 可以装饰到类、函数、讯问符、属性、参数上 语法 @xxx 装饰器其实是一个函数 @xxx 就要有一个 function xxx 多个装饰器可以用来装饰一个声明, @f @g arg 或者在多行上 @f @g x 这样的组合最后的结果将会是 f(g(... ...
分类:
其他好文 时间:
2017-01-10 08:31:39
阅读次数:
185
“武林至尊,宝刀屠龙,号令天下,莫敢不从,倚天不出,谁与争锋”,这是神器。不过今天要说的python中的“神器”就没有这么厉害了,这里要说的“神器”其实就是名称里面带了个“器”的,如下: 列表解析器 迭代器 生成器 装饰器 列表解析器 现在遇到了这样一个问题需要解决:“有一个数字的列表,要求对该列表 ...
分类:
编程语言 时间:
2017-01-09 23:47:39
阅读次数:
475
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责 ...
分类:
其他好文 时间:
2017-01-09 20:11:07
阅读次数:
177