【Todo】Python面试题分析记录(修饰器等)
2016-12-11 10:24
211 查看
首先,看这一段代码:
本文主要讲解原理性的东西,具体的实例可以参考下面的链接:
Python装饰器实例:调用参数合法性验证Python装饰器与面向切面编程Python装饰器小结Python tips: 超时装饰器, @timeout decoratorpython中判断一个运行时间过长的函数python利用装饰器和threading实现异步调用python输出指定函数运行时间的装饰器python通过装饰器和线程限制函数的执行时间python装饰器的一个妙用通过 Python 装饰器实现DRY(不重复代码)原则对于类方法的装饰器,有人给出如下方案:
class A(object): x = 1 gen = (lambda t: (t for _ in xrange(10)))(x) if __name__ == '__main__': print(list(A.gen))打印出:
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]装饰器学习:看这篇文章应该就可以了:《Python装饰器学习(九步入门)》里面提到http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html内置的装饰器有三个,分别是staticmethod、classmethod和property,作用分别是把类中定义的实例方法变成静态方法、类方法和类属性。由于模块里可以定义函数,所以静态方法和类方法的用处并不是太多,除非你想要完全的面向对象编程。而属性也不是不可或缺的,Java没有属性也一样活得很滋润。从我个人的Python经验来看,我没有使用过property,使用staticmethod和classmethod的频率也非常低。重点关注第11行的@timeit,在定义上加上这一行与另外写foo = timeit(foo)完全等价,千万不要以为@有另外的魔力。除了字符输入少了一些,还有一个额外的好处:这样看上去更有装饰器的感觉。
class Rabbit(object): def __init__(self, name): self._name = name @staticmethod def newRabbit(name): return Rabbit(name) @classmethod def newRabbit2(cls): return Rabbit('') @property def name(self): return self._name 这里定义的属性是一个只读属性,如果需要可写,则需要再定义一个setter: @name.setter def name(self, name): self._name = namehttp://blog.csdn.net/mdl13412/article/details/22608283里面给出了一些实例参考
本文主要讲解原理性的东西,具体的实例可以参考下面的链接:
Python装饰器实例:调用参数合法性验证Python装饰器与面向切面编程Python装饰器小结Python tips: 超时装饰器, @timeout decoratorpython中判断一个运行时间过长的函数python利用装饰器和threading实现异步调用python输出指定函数运行时间的装饰器python通过装饰器和线程限制函数的执行时间python装饰器的一个妙用通过 Python 装饰器实现DRY(不重复代码)原则
def decorator(args): def _deco(func): def _func(self): print args print 'gooooo' func(self) print 'fooo' return _func return _deco关于直接对类编写装饰器,如下:http://www.2cto.com/kf/201603/494405.html
中文编码
可以看这里:http://www.cnblogs.com/charlesblc/p/6159109.html 其他的后续再看吧...相关文章推荐
- 【Todo】C++类 & 通用面试题分析记录 & 最难的bug
- 一次用bash+python分析NGINX日志的记录
- 使用Python分析谷歌浏览器Chrome的网页浏览历史记录
- python中用修饰器进行异常日志记录
- Dive Into Python 学习记录3-对获取某文件夹下MP3文件信息的代码构成分析
- python分析谷歌浏览器的历史记录
- Python-QQ聊天记录分析-jieba+wordcloud
- Python: 利用Python进行数据分析 学习记录
- 【Todo】Java类面试题分析
- python数据分析与挖掘项目实战记录
- 基于 Python 的数据结构与算法分析学习记录(6-6)—— 分析树
- 《利用python 进行数据分析》要点记录
- 使用Python分析谷歌浏览器Chrome的历史记录
- 利用python进行数据分析—数据清洗记录3,map,apply,
- 5个很好的Python面试题问题答案及分析
- Spark机器学习入门·编程(scala/java/python)实现分析商店购买记录
- 从安卓手机ROOT提取微信聊天记录到利用Python进行词云分析全过程
- 由浅入深分析python修饰器
- python 数据分析 问题记录
- python-实时分析log文件每秒记录数