zoukankan      html  css  js  c++  java
  • day 18 笔记

    装饰器补充:index = wrapper()
    index()
    def index():
    """登录模块"""
    pass
    index.__name__()
    index.__doc__()
    def otter(func):
    @wraps(func)
    def wrappers():
    from functools import wraps

    wraps是将我们的装饰器进一步完善的一个方法。

    有参装饰器:在装饰器的基础上如果产生了需要额外参数的传入,我们应该使用有参装饰器。
    def login():
    file
    mysql
    ldap
    def auto(test):
    def otter(func):
    @wraps(func)
    def wrappers(*args,**kwargs):
    func(*args,**kwargs)
    if test ==“file”:
    打开文件 认证用户名密码
    return wrapper
    return otter

    @auto("file")
    test()
    1.什么是迭代器:迭代器就是用来迭代取值的这么一个工具,迭代是以个重复的过程,而且每次都是基于上次的结果进行重复的,
    while True:
    print(...)
    单纯的重复不叫迭代。
    2.为什么要有:就是为了循环执行功能而产生的,涉及到取值等操作
    while循环实现对有索引关系的类型的一个循环取值
    针对无索引类型的循环取值需求 python为我们提供了一种工具,可以不依赖索引,它就是迭代器
    3.如何用:
    1.可迭代对象,list[]
    list.__iter__()
    但凡内置有__iter__方法的都称之为可迭代对象
    在调用__iter__方法时我们将其转化为一个迭代器对象 x = list.__iter__()
    2.迭代器对象 x.__next__() x.__iter__()
    但凡内置有__iter__与__next__方法的都称之为迭代对象
    调用.__next__()得到迭代器的下一个结果
    在调用__iter__方法时我们得到的是迭代器对象本身

    文件就是一个迭代器对象

    for循环工作原理:又称为迭代循环 in后可以跟任意的可迭代对象
    print(shuchuhashjfhia)
    iter(x)
    next(iter(x))

    goods=['mac','lenovo','acer','dell','sony']
    goods[5]
    i=iter(goods) #每次都需要重新获取一个迭代器对象 = goods=['mac','lenovo','acer','dell','sony']
    while True: for item in goods.__iter__():
    try: print(item)
    print(next(i))
    except StopIteration: #捕捉异常终止循环
    break

    迭代器优缺点:优点: 1.为序列和非序列类型提供了一种统一的迭代取值方式
    2.惰性运算
    缺点: 1.除非用尽,我们无法获得迭代器的长度
    2.只能去下一个值,无法回到上一个值

  • 相关阅读:
    Halcon学习笔记之缺陷检测(二)
    tensorflow常用函数库
    luogu P2765 魔术球问题 (最小路径覆盖)
    luogu P2423 [HEOI2012]朋友圈 (最大团)
    poj 2226 Muddy Fields (二分图)
    匈牙利算法板子
    二分图
    AC日记——【模板】树链剖分 洛谷 P3384
    AC日记——[ZJOI2008]树的统计Count bzoj 1036
    去重排序
  • 原文地址:https://www.cnblogs.com/Jicc-J/p/12562217.html
Copyright © 2011-2022 走看看