无名商城论坛

搜索
查看: 327|回复: 0

[其他技术] 【HC】函数进阶

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 18:38:26 | 显示全部楼层 |阅读模式

有参装饰器def login_auth(func):        def wrapper(func):                def inner(*args, **kwargs):                        res = func(*args, **kwargs)                        return res                return inner        return wrapper@login_auth('vip用户')def index():        pass12345678910无参装饰器def wrapper(func):        def inner(*args,**kwargs):                res = func(*args, **kwargs)                return res        return inner@wrapperdef index():        pass12345678生成器生成器的本质:yield生成器是自定义的迭代器,本质是迭代器生成器的定义:在函数体自定义yield,调用函数时函数体内代码不会执行,当通过__next__()取值时才会执行函数体内代码,并且yield会返回一个结果(可以返回多次);yield的特点: 1.yield只能在函数体内定义 2.每次都往生成器添加一个值 3.可以保持暂停状态yield和return的区别:相同点:都有返回值不同点:return只能返回一次值(一次值可以是空,一个,多个),yield一次只能返回一个值,但可以返回多次。演练list1 = [1, 2, 3, 4] list = list1.__iter__() print(list.__next__())通过__next__()取值才会执行函数体内代码def func():    print('from func')    yield 'tank'    print(func().__next__())def func():    yield 1    yield 2    yield 3    yield 4    yield 5    yield 6res = func()__next__()直接通过func()取值,只能取第一个,必须通过func()对象res才能实现迭代全部print(res.__next__())......print(res.__next__())迭代器内部自动优化stopiteration报错def range_me(start, end, move=1):    while start < end:#                 yield start#                 start += move# res = range_me(1,5)for line in res:         print(line)    for line in range_me(1,5,1):          print(line)12345678910111213141516171819202122232425262728293031面向过程编程面向过程编程自白:面向过程编程核心是’过程’二字,类似工厂流水线,即先做什么后做什么。优点: 复杂的问题流程化、简单化。缺点: 可扩展性差,牵一发而动全身。def get_user_pwd():        while True:                username = input('请输入用户名:').strip()                if username.isalpha():                        break                else:                        print('名字不合法')        while True:                password = input('请输入密码').strip()                re_password = input('请确认密码').strip()                if password == re_password:                  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表