• 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.只能去下一个值,无法回到上一个值

  • 相关阅读:
    word2vec原理
    tensorboard
    更换pip源到国内镜像
    pycharm打包exe
    whl文件下载
    pycharm连git和gitee
    Django基础
    mysql相关
    安装anaconda及pytorch
    VSCode 配置python
  • 原文地址:https://www.cnblogs.com/Jicc-J/p/12562217.html
Copyright © 2020-2023  润新知