上一页 1 ··· 348 349 350 351 352 353 354 355 356 ··· 385 下一页
摘要: 标准迭代器 示例 14-4 sentence_iter.py:使用迭代器模式实现 Sentence 类 import re import reprlib RE_WORD = re.compile('\w+') class Sentence: def __init__(self, text): sel 阅读全文
posted @ 2020-05-26 13:46 秋华 阅读(182) 评论(0) 推荐(0)
摘要: 可迭代的对象 如果对象实现了能返回迭代器的 __iter__ 方法,那么对象就是可迭代的。 序列都可以迭代;实现了 __getitem__ 方法,而且其参数是从零开始的索引,这种对象也可以迭代。 >>> s = 'ABC' >>> it = iter(s) # ➊ >>> while True: . 阅读全文
posted @ 2020-05-26 13:11 秋华 阅读(270) 评论(0) 推荐(0)
摘要: 简介 在 Python 中,所有集合都可以迭代。在 Python 语言内部,迭代器用于支持: 1.for 循环2.构建和扩展集合类型3.逐行遍历文本文件4.列表推导、字典推导和集合推导5.元组拆包6.调用函数时,使用 * 拆包实参 语言内部使用 iter(...) 内置函数处理可迭代对象的方式 序列 阅读全文
posted @ 2020-05-26 12:40 秋华 阅读(254) 评论(0) 推荐(0)
摘要: 类装饰器装饰类方法 不带参数 from functools import wraps import types class CatchException: def __init__(self,origin_func): wraps(origin_func)(self) def __get__(sel 阅读全文
posted @ 2020-05-25 14:03 秋华 阅读(906) 评论(0) 推荐(0)
摘要: 函数装饰器装饰类 单例模式 from functools import wraps def singleton(cls): instances = {} @wraps(cls) def get_instance(*args, **kw): if cls not in instances: insta 阅读全文
posted @ 2020-05-24 11:12 秋华 阅读(473) 评论(0) 推荐(0)
摘要: 内置的装饰器和普通的装饰器原理是一样的,只不过返回的不是函数,而是类对象,所以更难理解一些。 @property 在了解这个装饰器前,你需要知道在不使用装饰器怎么写一个属性。 def getx(self): return self._x def setx(self, value): self._x 阅读全文
posted @ 2020-05-24 11:03 秋华 阅读(241) 评论(0) 推荐(0)
摘要: 回到装饰器上的概念上来,装饰器要求接受一个callable对象,并返回一个callable对象(不太严谨,详见后文)。 那么用类来实现也是也可以的。我们可以让类的构造函数__init__()接受一个函数,然后重载__call__()并返回一个函数,也可以达到装饰器函数的效果。 基本类装饰器 clas 阅读全文
posted @ 2020-05-24 10:53 秋华 阅读(341) 评论(0) 推荐(0)
摘要: 叠放装饰器 示例 7-19 演示了叠放装饰器的方式:@lru_cache 应用到 @clock 装饰fibonacci 得到的结果上。在示例 7-21 中,模块中最后一个函数应用了两个 @htmlize.register 装饰器。 把 @d1 和 @d2 两个装饰器按顺序应用到 f 函数上,作用相当 阅读全文
posted @ 2020-05-23 22:02 秋华 阅读(450) 评论(0) 推荐(0)
摘要: 示例 7-15 定义了一个装饰器,它会在每次调用被装饰的函数时计时,然后把经过的时间、传入的参数和调用的结果打印出来。示例 7-15 一个简单的装饰器,输出函数的运行时间 import time def clock(func): def clocked(*args): # ➊ t0 = time.p 阅读全文
posted @ 2020-05-23 21:19 秋华 阅读(518) 评论(0) 推荐(0)
摘要: 变量作用域规则 在示例 7-4 中,我们定义并测试了一个函数,它读取两个变量的值:一个是局部变量 a,是函数的参数;另一个是变量 b,这个函数没有定义它。 >>> def f1(a): ... print(a) ... print(b) ... >>> f1(3) 3 Traceback (most 阅读全文
posted @ 2020-05-23 20:59 秋华 阅读(704) 评论(0) 推荐(0)
上一页 1 ··· 348 349 350 351 352 353 354 355 356 ··· 385 下一页